Получение утверждений Flexmock для запуска неудачного теста Rspec с использованием Ruby on Rails - PullRequest
2 голосов
/ 21 апреля 2011

Используя 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, когда его ожидания не оправдались?

...