0

使用 Mocha,我正在使用需要返回 2 个单独值的相同方法。无论我做什么,它只返回 2 个值中的 1 个,因此我的 rspec 测试中的 1 个总是失败。如何让存根在正确的时间返回正确的值?

编码:

describe "#method" do
  it "has something" do
    hash = { "allow_sharing" => "1"}
    CustomClass.stubs(:app_settings).returns(hash)
    get 'method', :format => :json
    JSON.parse(response.body).count.should eq(1)
  end
  it "does not have something" do
    hash = { "allow_sharing" => "0"}
    CustomClass.stubs(:app_settings).returns(hash)
    get 'method', :format => :json
    JSON.parse(response.body).count.should eq(0)
  end
end

我也用块这样尝试过before。仍然没有运气。

describe "#method" do
  before do
    hash = { "allow_sharing" => "1"}
    CustomClass.stubs(:app_settings).returns(hash)
  end
  it "has something" do
    get 'method', :format => :json
    JSON.parse(response.body).count.should eq(1)
  end
# ... etc.
4

1 回答 1

1

如果可用,请尝试使用 as_null_object。例如,对于所有带有存根的行:

CustomClass.stubs(:app_settings).returns(hash).as_null_object
于 2013-02-13T01:17:12.887 回答