pytest documentationには、assert
が失敗したときに出力メッセージをカスタマイズできると記載されています。 REST APIのメソッドをテストするとき、私はそれが無効なステータスコードを返すassert
メッセージをカスタマイズしたい:pytest可変イントロスペクションによるメッセージのカスタマイズ
def test_api_call(self, client):
response = client.get(reverse('api:my_api_call'))
assert response.status_code == 200
だから私はconftest.py
def pytest_assertrepr_compare(op, left, right):
if isinstance(left, rest_framework.response.Response):
return left.json()
しかし、問題は、このようなコードの断片を入れてみましたleft
がresponse.status_code
の実際の値なので、Response
の代わりにint
です。
E 400 =エラー400がオブジェクト
Response
の属性status_code
から来ていると言っ
を.status_code 400 == 201 E +を主張:ただし、デフォルトの出力メッセージのような何かをスローします。
私の指摘は、評価対象の変数のイントロスペクションがあるということです。では、上記の例と同様の出力を得るために、アサートエラーメッセージを快適な方法でカスタマイズするにはどうすればよいですか?
おかげでドミトリーを。私はあなたが提案した両方の解決策を知っていて、両方がうまくいくと確信しています。しかし、私はあなたがまだ 'assert'を使用することができ、より多くのコードを書く必要がない、すばらしい解決策を探していました。 –
ああ、申し訳ありませんが、あなたの質問の意思を得ていない –