3

我正在使用 django 测试进行第一次实验,但我遇到的问题是,无论我使用的是哪个 url(甚至 /),我总是得到 404 模板。如果我将相同的代码扔到 django shell 中,它会按预期工作,并且总是向我显示请求的 url 的内容。

class SimpleTest(TestCase):
    def setUp(self):
        self.user = User.objects.create_user('test', 'test', 'test')
        self.user.is_staff = True 
        self.user.save()
        self.client = Client()

    def test_something(self):
        self.assertTrue(self.client.login(username='test', password= 'test'))
        self.client.get("/")

登录返回 True,但 get() 失败。任何提示我在这里做错了什么?

4

1 回答 1

5

请记住,大多数视图使用类似get_object_or_404,或在访问某个对象或另一个对象时出现问题时get_list_or_404简单地引发。Http404您需要确保您的测试数据库填充了足够的对象来满足所有这些要求,以使视图不会返回 404。

请记住,在运行测试时,数据库会在每次测试后回滚(使用事务),因此每个测试方法必须独立存在,或者该setUp方法必须使用任何所需的依赖项填充数据库。

于 2011-10-03T14:20:29.733 回答