我正在进行我的第一次django测试实验,我遇到的问题是我总是得到404模板,无论我使用哪个url(偶数/)。 如果我将相同的代码抛入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()失败。我在这里做错了什么提示?
答案 0 :(得分:5)
请注意,大多数观看次要使用get_object_or_404
,get_list_or_404
之类的内容,或者只是在访问某个对象或其他对象时出现Http404
。您需要确保为测试数据库填充了足够的对象,以满足所有这些要求,使视图不返回404。
请记住,在运行测试时,每次测试(使用事务)后都会回滚数据库,因此每个测试方法必须独立存在,否则setUp
方法必须填充数据库具有任何必需的依赖性。