我測試的燒瓶中的應用與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