Пользовательские сообщения об ошибках в rspe c при сравнении равенства - PullRequest
0 голосов
/ 13 марта 2020

Можно ли добавить пользовательское сообщение об ошибке в ожидание, которое выглядит следующим образом:

expect(user.uid).to eq uid

Я пытался:

expect(user.uid).to eq uid, "Custom message"

из-за https://relishapp.com/rspec/rspec-expectations/docs/customized-message но я думаю, что это оператор соответствия. Есть ли другой способ?

Ответы [ 2 ]

0 голосов
/ 25 марта 2020

Оказалось, то, что я делал, было в основном нормально:

expect(user.uid).to eq(uid), "Custom message"

работает, просто я получал ошибку с user, равным нулю, и сбой вызова вместо генерации соответствия ошибка.

0 голосов
/ 20 марта 2020

Как вы сказали, настраиваемые сообщения об ошибках не поддерживаются для сопоставителей на основе встроенных операторов Ruby для строк, чисел и массивов (==, >, <=, =~ и т. Д.). c.).

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

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

...