Python Django健全性测试显示404不是404
我在django测试中创建健全性检查时,遇到了一个我已经解释过的错误。不幸的是,我的测试在应该成功的时候失败了。我正在测试页面不存在的情况(404状态代码)。错误消息和代码如下所示。当我添加报价时,我收到的404不是“404” Django-1.10.2和Python 3.4.5Python Django健全性测试显示404不是404,python,django,unit-testing,automated-tests,http-status-code-404,Python,Django,Unit Testing,Automated Tests,Http Status Code 404,我在django测试中创建健全性检查时,遇到了一个我已经解释过的错误。不幸的是,我的测试在应该成功的时候失败了。我正在测试页面不存在的情况(404状态代码)。错误消息和代码如下所示。当我添加报价时,我收到的404不是“404” Django-1.10.2和Python 3.4.5 ./manage.py test app Traceback (most recent call last): File "/tests/dir/tests.py", line 26, in test_404
./manage.py test app
Traceback (most recent call last):
File "/tests/dir/tests.py", line 26, in test_404
self.assertIs(response.status_code,404)
AssertionError: 404 is not 404
from django.test import TestCase
from django.test import Client
class SanityCheckTests(TestCase):
def test_404(self):
"""
Http Code 404
"""
client = Client()
response = client.get('/test404')
print(response)
self.assertIs(response.status_code,404)
您所处的轨道是正确的,但可以确保您拥有相同的对象实例。你只是想确定他们是 因此,将最后一行更改为
self.assertEqual(response.status_code, 404)
在Python中,“is”操作符测试对象是否完全相等。仅仅因为response.status_代码打印为404并不意味着它是一个值为404的整数。尝试打印response.status\u code.\uuu class\uuuu或isinstance(response.status\u code)并查看结果。奇怪的是,我的200代码健全性检查没有失败。它使用断言。但是我的测试现在可以了,谢谢!这个问题解释了发生了什么: