RSpec как проверить, должен ли сам должен быть получен вызов - PullRequest
1 голос
/ 02 февраля 2012

В моем RSpec у меня есть:

discount.should_receive(:ended=).with(true)

В моей модели у меня есть:

self.ended = document.at_css('#buy_now').blank?
  if not ended?
    ...

Я хочу проверить, вызван ли ended=, но моя спецификация проверит, вызван ли он, и затем пропустит фактическое обновление, чтобы окончание не было правильно установлено.

Я хочу, чтобы он действительно работал, чтобы последующая логика работала правильно. Есть ли способ сделать это, элегантно, если это возможно?

1 Ответ

1 голос
/ 02 февраля 2012

Вы можете использовать ожидаемое изменение, чтобы убедиться, что окончание обновлено должным образом, не предотвращая фактическое обновление.

expect {
  # code which changes ended to true
}.to change(discount, :ended).from(false).to(true)

https://www.relishapp.com/rspec/rspec-expectations/v/2-0/docs/matchers/expect-change

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