【问题标题】:How to test, in rspec, environment determined with Settings.production?如何在 rspec 中测试由 Settings.production 确定的环境?
【发布时间】:2016-01-29 10:50:17
【问题描述】:

我在 Sinatra 项目中具有根据环境是生产还是开发来确定不同行为的逻辑。

if Services.production?
    # do something
else
    # do something else
end

如何测试此代码?我尝试了以下方法,但没有成功:

expect_any_instance_of(Services).to receive(:production?).and_return(true)

【问题讨论】:

    标签: ruby rspec sinatra


    【解决方案1】:

    这不是您调用production?Services 的实例,而是Services 类本身。你应该能够做到

    expect(Services).to receive(:production?).and_return(true)

    【讨论】:

      【解决方案2】:

      从您的代码来看,它看起来像生产?是一个类方法,所以它不是在服务实例上调用,而是在服务类上调用。 试试

      expect(Services).to receive(:production?).and_return(true)
      

      【讨论】:

      • 谢谢。两个答案都是正确的,所以我将第一个标记为答案。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-28
      • 2016-08-09
      • 1970-01-01
      相关资源
      最近更新 更多