微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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.jb51.cc/ruby/270448.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐