我想要考虑这一堆代码,以便我的所有控制器测试(好吧,几乎所有这些)都使用前面的这个(:每个)块:
before(:each) do @user = User.new controller.stub(:authenticate_user!) controller.stub(:current_user).and_return(@user) controller.stub(:add_secure_model_data) end
有没有办法做到这一点?我不想将它包含在所有控制器中…因为有一些不需要它.基本上,从SecureController扩展的每个控制器都需要这个(:每个)块之前.
有没有好办法呢?
谢谢
解决方法
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