我正在使用pytest来测试我的django rest framework API,在下面的测试中得到了一个错误:
def test_client_gets_invalid_when_submitting_invlaid_data(self):
client = APIClient()
response = client.post(path="/user/register/", data={})
assert response.status_code is 400
pytest中的追溯如下:
> assert response.status_code is 400
E assert 400 is 400
E + where 400 = <Response status_code=400, "application/json">.status_code
core\tests\test_views.py:26: AssertionError
我不明白这个错误怎么会发生,当400是字面上等于400?
2条答案
按热度按时间pjngdqdw1#
因此,关键字
is
测试内存中的同一性,而==
测试值。因此,解决方案只是将
is
更改为==
https://www.geeksforgeeks.org/python-object-comparison-is-vs/
scyqe7ek2#
is
运算符比较两个对象的标识,而不是它们的值。在本例中,response.status_code
是一个int对象,400也是一个int对象,但它们是int对象的不同示例。您应该改用
==
运算符来比较它们的值。