Python Django健全性测试显示404不是404

Python 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

我在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
    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代码健全性检查没有失败。它使用断言。但是我的测试现在可以了,谢谢!这个问题解释了发生了什么: