Как лучше отлаживать в RSpec?

Я новичок в тестировании и имею проблемы с отладкой, как обычно, в модели или контроллере.

Я создал пользователя из factory (используя FactoryGirl, если это имеет значение), и я уверен, что метод create не работает из-за проверки при сохранении. Однако мне бы хотелось знать, как отлаживать модель, созданную во время тестирования.

Я пробовал:

user.inspect
puts user
raise user.to_yaml 

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

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

Спасибо за любое направление

Ответ 1

Получил ответ, это не могло быть проще (этот пользователь сформулировал мой вопрос намного лучше и сжато:)

Как вывести переменную в тест rspec?

короткий ответ, используйте довольно печать:

pp пользователь

Ответ 2

Checkout plymouth: https://github.com/banister/plymouth

Он работает с PRY, чтобы дать вам хороший интерфейс REPL и отладки при неудачном тестировании. Я использовал его в некоторых проектах и ​​нашел его очень удобным для неясных проблем в тестах.

Ответ 3

Вы всегда можете открыть сеанс pry, добавив binding.pry к вашему тесту. Таким образом, вы можете получить доступ к тому, что доступно в точном месте теста (и в других местах, если это необходимо). Дополнительная информация о добавлении pry в Rails в официальный Pry wiki