Используя Mocha, я завершаю тот же метод, который должен вернуть 2 отдельных значения. Независимо от того, что я делаю, он возвращает только 1 из 2 значений, поэтому 1 из моих тестов rspec всегда терпит неудачу. Как получить заглушку, чтобы вернуть правильное значение в нужное время?Mocha для того же метода должен возвращать 2 разных значения
Код:
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.
Вы пробовали вызов 'CustomClass.app_settings' сразу после завершения, чтобы убедиться, что он возвращает ожидаемый хеш? Это может помочь уменьшить проблему и устранить любые сомнения в том, что что-то еще вызывает у вашего ответа неожиданный подсчет. – exbinary
a4rcho, ваше предложение сделало трюк. Ступица работала правильно. Проблема была в самом методе 'get '. Он не проверял значение правильно. –