RSpec应该接受不可靠的工作

时间:2014-02-25 06:07:10

标签: ruby rspec

我很困惑。我有以下rspec测试:

example "With ENV Slug" do
#Sets a variable to be read by api.releases
      ENV.stub(:[]).with("REPO_SLUG").and_return('foo/bar')

      provider.api.should_receive(:releases).with('foo/bar').twice
      provider.releases
    end

它失败了:

 expected: ("foo/bar")
              got: (nil)

我感到很好奇,所以我尝试了这个:

example "With ENV Slug" do
#Sets a variable to be read by api.releases
      ENV.stub(:[]).with("REPO_SLUG").and_return('foo/bar')

      provider.api.should_receive(:releases).with(no_args).twice
      provider.releases
 end

现在我收到了错误:

expected: (no args)
              got: ("foo/bar")

世界上有什么?有什么我做错了吗?谢谢你的建议。

1 个答案:

答案 0 :(得分:0)

事实证明,该函数被调用了两次,一次是“foo / bar”,另一次是“nil”,所以解决问题的两次尝试都失败了同一个函数但是调用次数不同。