我正在测试 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).
这是怎么回事?
最佳答案
status_code
参数是重定向响应的状态。这通常应该是 301
(永久重定向)或 302
(临时重定向)。
使用 status_code=200
没有意义,因为 200 不是重定向响应。
我同意响应代码是 200(预期为 200)。 看起来有点困惑,但断言错误的关键部分是响应没有按预期重定向 .
由于断言告诉您您没有被重定向,这表明您的登录帖子无效。您可以尝试检查 response.content
以查看问题所在。请注意,您的网址应以斜杠开头(即 /app/login
和 /app/graphs
)。
关于Django 重定向状态代码错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38594720/