我想问一下在调用堆栈中获取当前规范文件和其他文件路径的可接受模式是什么。
例如,我有一些共享it_should_behave_like
示例的视图规范,并且shared_examples_for
在单独的 mixin 规范中定义。
想象:
views/page1.html_spec.rb
views/page2.html_spec.rb
和
it_behaves_like "common view"
和
mixins/common_view_spec_mixin.rb
和
shared_examples_for "common view" do
如果我想在 中获取规范文件调用示例mixins/common_view_spec_mixin.rb
,请调用
example.file_path
会产生
./spec/mixins/common_view_spec_mixin.rb
page1
但如果我想知道是否或page2
正在测试,这不是很有帮助。
我发现我可以进入元数据以深入调用堆栈以获取 file_paths:
example.metadata[:example_group][:file_path]
产量./spec/mixins/common_view_spec_mixin.rb
和
example.metadata[:example_group][:example_group][:file_path]
产量./spec/views/page1.html_spec.rb
或./spec/views/page2.html_spec.rb
我想问一下,如果结构发生RSpec::Core::Example
变化,这是否是一种可接受的模式,或者是否有更好的方法来做到这一点。
谢谢,