ruby-on-rails - 如何将变量从 let 传递到共享示例?

标签 ruby-on-rails rspec refactoring

我有这样的测试:

describe 'event creation' do
  let(:user) { create :user }
  ...
  it_behaves_like 'also creates public_activity record', user
end

我需要用户记录来检查 public_activity 是否正确创建,但上面的示例不起作用,因为 let 中的变量只能从示例上下文中访问。

我做了这个解决方法:

describe 'event creation' do
  let(:user) { create :user }
  ...

  describe 'public activity' do
    before { @user = user }
    it_behaves_like 'also creates public_activity record', @user
  end
end

它有效,但我不太喜欢这种方法。有没有更好的方法来实现这一点?

最佳答案

尝试使用 include_examples 而不是 it_behaves_like。然后测试用例将使用当前上下文。

关于ruby-on-rails - 如何将变量从 let 传递到共享示例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42038825/

相关文章:

ruby-on-rails-3 - RSpec:最简单的测试失败并出现错误:预期 block 返回真值

ruby-on-rails-4 - 规范中的“无法触及新记录对象”错误

ruby-on-rails - 测试设计使用 Rspec 更新用户注册信息并获取:ActionController::UnknownFormat: Error

iphone - 尝试重构类时 Xcode 被卡住

refactoring - @VisibleForTesting 的替代品

ruby - 以编程方式创建此数组?

ruby-on-rails - rails : mass-assignment security concern with belongs_to relationships

mysql - rake 任务 "Killed"

ruby-on-rails - 如何断言它使用正确的 json 呈现?

ruby-on-rails - Rails 邮件程序 : change file when delivery_method :file