在pytest 文档中,它说您可以在assert
失败时自定义输出消息。我想assert
在测试返回无效状态代码的 REST API 方法时自定义消息:
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
所以它是 aint
而不是 a Response
。但是,默认输出消息会抛出类似:
E 断言 400 == 201 E + 其中 400 = .status_code
说错误 400 来自status_code
对象的属性Response
。
我的观点是对被评估的变量有一种内省。那么,如何以舒适的方式自定义断言错误消息以获得与上面发布的示例类似的输出?