我正在测试Django应用。当用户登录时,我将其重定向到图形页面。为了测试,我写了
response = TestCase.client.post('app/login', {credentials}, follow=True)
TestCase.assertRedirects(response, 'app/graphs')
返回
AssertionError: False is not true :
Response didn't redirect as expected: Response code was 200 (expected 302).
足够合理。 The docs say assertRedirects
有一个status_code
参数。然后打电话给
TestCase.assertRedirects(response, 'app/graphs', status_code=200)
返回
AssertionError: False is not true :
Response didn't redirect as expected: Response code was 200 (expected 200).
发生了什么?
答案 0 :(得分:2)
status_code
参数是重定向响应的状态。通常应为301
(永久重定向)或302
(临时重定向)。
使用status_code=200
没有意义,因为200不是重定向响应。
我同意响应代码为200(预期为200)。看起来有点令人困惑,但断言错误的关键部分是响应没有按预期重定向
由于断言告诉您没有被重定向,这表明您的登录帖子无效。您可以尝试检查response.content
以查看问题所在。请注意,您的网址应以斜杠开头(即/app/login
和/app/graphs
)。