问题描述
|
我想分解这些代码,以便我所有的控制器测试(好吧,几乎所有测试)都使用此
before(:each)
块:
before(:each) do
@user = User.new
controller.stub(:authenticate_user!)
controller.stub(:current_user).and_return(@user)
controller.stub(:add_secure_model_data)
end
有什么办法吗?我不想将其包含在所有控制器中……因为有一些不需要它。基本上,每个从ѭ2扩展的控制器都将需要该before(:each)
块。
有什么好办法吗?
谢谢
解决方法
http://relishapp.com/rspec/rspec-core/dir/example-groups/shared-context
shared_context \"controller stuff\" do
before(:each) { ... }
end
describe SomeController do
include_context \"controller stuff\"
...
end
,所以放到into5ѭ
如果某些特定的children2ѭ子级不希望使用此功能,则可以制作另一个中间超类,或使用您控制的条件包装方法调用。