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 に答える