Как пропустить вызов наблюдателя after_save во время тестирования в Rspec? - PullRequest
2 голосов
/ 15 января 2012

Есть некоторые вызовы API для внешних служб в методе after_save в моем PostObserver.Но я не хочу вызывать after_save при тестировании с Rspec.Есть способ сделать это?Спасибо.

Это рельсы 3.1

Ответы [ 2 ]

12 голосов
/ 15 января 2012

Наблюдатели-заглушки могут вызывать нежелательные побочные эффекты, потому что они синглтоны. Альтернативой в Rails 3.1 является отключение наблюдателя в вашем тесте. например,

Post.observers.disable :all do
  ..
end

Другой вариант для более старых версий Rails - no-peeping-toms gem.

1 голос
/ 15 января 2012

Заглушка:

PostObserver.instance.stub(:after_save => true)
...