我有一個ruby協議模擬服務提供程序,它捕獲我的請求。我想提取請求中提供的確切值(通過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:這不是導軌,而是roda。
感謝 安德烈