Rspec should_receive не работает для модуля, который расширяет себя - PullRequest
1 голос
/ 25 декабря 2011

Протестированный модуль

module Notifications
  extend self

  def notify(push_id, platform, message, event, args)
    puts "hello"
    ...     
  end
end


Notifications.should_receive(:notify)

Rspec сообщает, что notify не было вызвано, однако в журнал выводится "hello".

1 Ответ

0 голосов
/ 25 декабря 2011

Это прекрасно работает для меня:

module Notifications
  extend self

  def notify(push_id, platform, message, event, args)
    puts "hello"
  end
end


describe 'RSpec stubbing' do
  it "works when I don't stub" do
    Notifications.should_not_receive(:notify)
  end

  specify 'works when I do stub' do
    Notifications.should_receive(:notify)
    Notifications.notify(1,2,3,4,5)
  end
end

Ваш код явно неверен, потому что когда вы делаете #should_receive, он не вызывает оригинальный метод.Если вы видите распечатку «привет», то RSpec не поймает ее.Возможно, вы не уверены, используете ли вы экземпляр или сам модуль.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...