У меня есть провайдер услуг по фиксации рубинового пакта, который фиксирует мой запрос. Я хотел бы извлечь точное значение, указанное в запросе (которое было сопоставлено с Pact.term / Pact.like), чтобы выполнить дальнейшую обработку с этим значением после того, как на запрос будет дан ответ поставщиком услуг pact.
Пример: функция сброса пароля. Код выполняет вызов API к почтовой службе, предоставляя ссылку для сброса пароля в качестве параметра. Pact перехватывает запрос и успешно его имитирует, проверяя данные. Я передаю reset_link как один из параметров (тело Json). Это соответствует условиям Pact.term. Все хорошо. Но я также хочу восстановить точное значение, которое использовалось в запросе (скажем, reset_link: 'http://sample.com/reset-password?key=12345 '), поэтому я могу сделать следующий запрос и проверить, действительно ли ссылка позволяет успешно сбросить пароль.
Теперь, если бы я отправлял электронное письмо напрямую, это было бы легко сделать, я могу просто проанализировать Mail :: TestMailer.deliveries.last
Как я могу это сделать?
Я просмотрел код, даже создание подкласса Pact :: SomethingLike не сработает, поскольку метод сравнения - прекрасный функциональный программный модуль, а не метод в классе.
Есть ли перехватчик до / после или способ получить весь веб-запрос?
PS: Я знаю, что это обычно проверяется базовой библиотекой, которую я использую. Разрешенный библиотекой способ настройки функциональности - переопределить определенные методы, мне нужно повторно протестировать всю функциональность.
PPS: это не рельсы, а роды.
Спасибо Андре