对于给定的Rails (3)控制器,我有几个视图规范: edit、index、new、show,我希望在它们之间共享一些样板设置代码。我希望避免将其放在spec_helper.rb文件中。有什么想法吗?
更具体地说,在spec/views/step中,我有四个文件:{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中的情况下这样做。
发布于 2011-11-14 02:22:33
你会发现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
希望这能有所帮助。
发布于 2011-11-14 03:17:11
也许你可以使用一个shared context
:https://www.relishapp.com/rspec/rspec-core/docs/example-groups/shared-context
https://stackoverflow.com/questions/8111480
复制相似问题