0
requestsをAPI呼び出しに使用する私のライブラリのユニットテストを容易にするために、requests-mockとpytestを使用しています。requests_mockを使用してHTTPリクエストの本体をアサートします
サーバーの応答を模擬するだけでなく、私のライブラリがHTTP本体に予想されるペイロードを送信することを確認する必要があることがよくあります。
私は私のテストでadditional_matcherコールバック使用して、間接的とはいえ、これを実行することができました:
def mylibrary_foo():
"""Library method that is under test."""
r = requests.post('http://example.com/foo', data='hellxo')
return r.text
@requests_mock.Mocker()
def test_foo(m):
def matcher(request):
assert request.body == 'hello'
return True
m.post('http://example.com/foo', text='bar', additional_matcher=matcher)
result = mylibrary_foo()
assert result == 'bar'
をしかし、それはそれとして、要求の形式を確認するためにadditional_matcher
コールバックを使用していると少し変な感じこの特定の要求呼び出しをまったく嘲笑すべきかどうかを判断することを本当に意図しています。
def test_foo():
# setup api_mock here...
mylibrary_foo()
api_mock.assert_called_with(data='hello')
一般的にHTTPリクエストの検証をサポートするために要求-モックで使用パターンがあります:私は要求-モックを使用していなかった、私がより多くのようなものをやっているだろうと思われますか?