RSpe c и ожидающий PG: RaiseException - PullRequest
       6

RSpe c и ожидающий PG: RaiseException

0 голосов
/ 27 февраля 2020

Я пытаюсь написать тест. База данных должна вызывать исключение, и я хочу убедиться, что оно возникло.

expect { save_to_db(@params)}.to raise_exception(PG::Exception)

Но

RSpec::Expectations::ExpectationNotMetError: expected {:PG=>Exception} but nothing was raised

Даже когда я получаю

  ERROR - 27/Feb/2020 10:52:19 PG::RaiseException: ERROR: Message ...

Любое советы, пожалуйста? :)

Редактировать:

Исправить опечатку, теперь результат

RSpec::Expectations::ExpectationNotMetError: expected PG::RaiseException but nothing was raised

Я пробовал разные комбинации, используя raise_error и PG::Error, но все еще не смог поймать и handle.

Это первая попытка

expect { save_to_db(@params)}.to raise_exception(PG::RaiseException)

и возвращается:

RSpec::Expectations::ExpectationNotMetError: expected PG::Error but nothing was raised

Если я пытаюсь переопределить наш метод save_to_db() и вставить URL-адрес сообщения:

expect { page.driver.post("send/?records=#{records_id}")}.to raise_exception(PG::RaiseException)

Я получаю ту же ошибку

1 Ответ

0 голосов
/ 27 февраля 2020

У вас есть опечатка в raise_exception(PG:Exception) - она ​​должна быть raise_exception(PG::Exception) (обратите внимание на двоеточие вместо единственного).

В результате он анализируется как значение ha sh {:PG => Exception} (:PG является допустимым символом, определена Exception константа, поэтому нет претензий от анализатора Ruby), что передается raise_exception сопоставителю. Итак, на самом деле вы ожидаете любую ошибку с конкретным сообщением (равным предоставленному вами ха sh) - и наверняка фактическое сообщение об ошибке PG::Exception отличается ...

Попробуйте сначала исправить эту опечатку - это может решить проблему.

...