对于给定的Rails(3)控制器,我有几个视图规范:edit,index,new,show,我想在它们之间共享一些样板设置代码。我想避免将其放在spec_helper.rb文件中。有什么想法吗?
更具体地说,在spec / views / steps中,我有四个文件:{edit,new,show,index} .html.erb_spec.rb。我想让他们分享一些代码,比如
let(:workflow) do
document = Factory.create(:document)
document.user = user
document.save!
document.workflow
end
例如 - 确切的代码无关紧要。我想这样做而不将其放在spec_helper.rb中。
答案 0 :(得分:4)
你会发现rspec完全符合这个要求:shared context。
它可以让你做这样的事情
shared_context 'workflow' do
let(:workflow) do
document = Factory.create(:document)
document.user = user
document.save!
document.workflow
end
end
如果您需要在不同的规范文件之间共享,请将其写入存储在spec/support
内的文件中。在测试中,您可以写:
describe 'Something' do
include_context 'workflow'
it 'behaves correctly' do
...
end
end
希望这有帮助。
答案 1 :(得分:2)
也许您可以使用shared context
:https://www.relishapp.com/rspec/rspec-core/docs/example-groups/shared-context