私はこのコードをGatewayクラスで取得しています。ゲートウェイクラスは、社内のAPIにリクエストします。ユニットテストはどのように行うのですか?(RSpecで)HTTPリクエストが(ユニットテストの一環として)Railsで送信されることをどのようにテストできますか?
class XGateway < BaseGateway
self.target_url = ENV["X_URL"]
def activate(serial_number:, comment: nil)
expecting 204 do
connection.put do |req|
req.url "/api/v1/hw/#{serial_number}/activate"
req.params = { comment: comment }
end
end
end
def deactivate(serial_number:, comment: nil)
expecting 204 do
connection.put do |req|
req.url "/api/v1/hw/#{serial_number}/deactivate"
req.params = { comment: comment }
end
end
end
end
connection
はファラデー要求オブジェクトであるとexpecting
は、方法は、それが有効な応答を期待していた状況を知らせるための方法です。両方とも、XGatewayが継承するBaseGatewayで定義されています。
今、私は(ユニットテストの範囲に?)ここでテストするために何が必要なのか私の知る限り理解し
、すべてのメソッドのための:HTTPリクエストがに送信されていることを
- テスト正しいparamsは
- 正しい動作のためのテスト期待が満たされた(レスポンスステータスコード204を有する)
- 正しい動作のためのテスト期待が満たされていない(応答204とは異なるステータスコードを有する)
しかし、httpリクエストが送信されたことをどのようにテストできますか?
[WebMock](https://github.com/bblimke/webmock)を使用すると、 –