Используя RSpec (2.5.0) и flexmock, и я обнаружил, что даже если я скажу объекту flexmocked, что он никогда не получит метод, мой тест в любом случае пройдет.
require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
class Foo
end
describe Foo do
describe "flexmock" do
it 'should fail when a method is called too many times' do
f = flexmock(:foo => :bar)
f.should_receive(:foo).never
f.foo
## this test should fail, but doesn't
end
end
end
→ rspec spec/models/foo_spec.rb
.
Finished in 0.00361 seconds
1 example, 0 failures
Хотя это надуманный пример, я собираюсь сделать что-то с помощью flexmock, например, чтобы электронные письма отправлялись
flexmock (электронная почта) .should_receive (: friend_request) .once
внутри других методов, но это не очень помогает мне, если объект flexmock-ed никогда не сообщает rspec, что его критерии не были выполнены.
Каким образом я могу заставить Flexmock запустить неудачный тест rspec, когда его ожидания не оправдались?