如何排除RSpec中常见的“ before:each”调用,以便多个规范可以使用它们?

问题描述

| 我想分解这些代码,以便我所有的控制器测试(好吧,几乎所有测试)都使用此
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ѭ子级不希望使用此功能,则可以制作另一个中间超类,或使用您控制的条件包装方法调用。