Я использую то, что в значительной степени представляет собой спецификацию RSpec, которая не работает, но не должна быть. Вот спецификации:RSpec update_attributes ожидает неудачу, хотя обновления работают
describe "PUT update" do
describe "with valid params" do
it "updates the requested invoice" do
invoice = Invoice.create!
Invoice.any_instance.should_receive(:update_attributes).with({"number" => "MyString" })
put :update, {:id => invoice.id, :invoice => { "number" => "MyString" }}
end
Когда спецификации выполняется, один счет-фактура создается в БД, и обновляется соответствующим образом. Однако я получаю это сообщение и сбой:
RSpec::Mocks::MockExpectationError: (#<Mocha::ClassMethods::AnyInstance:0x653a9a8>).update_attributes({"number"=>"MyString"})
expected: 1 time with arguments: ({"number"=>"MyString"})
received: 0 times with arguments: ({"number"=>"MyString"})
Почему это не удается?
Вы используете как 'RSpec :: Mocks', так и' Mocha'? –
Установлен камень Mocha. –
Предполагая, что вы используете Mocha с RSpec, вы следовали строкам на https://relishapp.com/rspec/rspec-core/v/2-14/docs/mock-framework-integration/mock-with-mocha ? –