我测试的烧瓶中的应用与py.test用下面的代码:保留响应上下文测试烧瓶应用与pytest
response = flask_app_test_client.post('/users', data=json.dumps(user))
assert response.status_code == 201
assert response.content_type == 'application/json'
assert isinstance(response.json, dict)
assert set(response.json.keys()) >= {'id', 'status', 'created_at', 'updated_at'}
assert response.json['name'] == user['name']
assert response.json['status'] == 'pending'
当某些断言失败,我得到这样的:
response = test_client.post('/users', data=json.dumps(user))
> assert response.status_code == 201
E assert 400 == 201
E + where 400 = <JSONResponse streamed [400 BAD REQUEST]>.status_code
============== 1 failed, 3 passed in 0.10 seconds ===================
我做了很多TDD,所以我期望我的测试在开发过程中经常失败。我的问题是断言错误消息是没有其余的响应数据(正文,标题等)没用。
如何打印每个失败断言的回复摘要?
不太确定为什么你认为你需要这里的身体,它只会是一个400错误消息。你知道请求的正文和标题是什么,你做到了。 – davidism
@davidism我只在输出中得到response.status_code是400,但我没有得到响应正文中的错误描述。例如: – pablomolnar
例如:{“errors”:[“username is already taken”,“email is required”]}在响应正文中。理想情况下,当断言失败时,我希望完全转储请求和响应(头文件+主体)。 – pablomolnar