ruby-on-rails – 如何在RSpec中分解常见的“before(:each)”调用,以便多个规范可以使用它们?

前端之家收集整理的这篇文章主要介绍了ruby-on-rails – 如何在RSpec中分解常见的“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

有没有办法做到这一点?我不想将它包含在所有控制器中…因为有一些不需要它.基本上,从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
原文链接:https://www.f2er.com/ruby/270448.html

猜你在找的Ruby相关文章