我想在Django个人资料应用程序中为视图编写一些测试。
视图有一些智能错误处理逻辑。例如如果我们尝试创建配置文件,但配置文件已存在,则只需重定向到现有的配置文件页面(或者可能转到编辑配置文件页面)。
如何测试此错误处理是否按预期工作? 什么是最佳实践?
一个想法是使用Zombie.js做BDD,并测试我看到一个标题不是“创建个人资料”的页面(或者检查我看到一个标题为“编辑个人资料”的页面)。但Django测试文档说:
但是,如果我想使用Django测试客户端,它可以执行以下操作:
我应该使用测试客户端然后查看页面内容吗?我应该看看哪个模板被渲染了?测试此视图的适当方法是什么?
答案 0 :(得分:1)
重定向和配置文件创建非常django所以当你可能使用其他框架来测试JS功能时,我会在这个实例中使用django测试客户端。
您必须根据具体情况决定测试的进度。时间有限,某些方面比其他方面更容易破损。例如,我不担心模板解析 - 200状态代码和内容的快速检查是充足的。
Anyhoo,我首先要确定视图的不同状态(我在这里猜测):
如何测试此错误处理是否符合要求?
# create object with specific ID.
# post form data that should trigger your special redirect.
# ensure the redirect takes you to the model you just created via reverse
response = client.post(reverse('form_url'), {'valid_form_data': ''}, follow=True)
assertRedirects(response, reverse('view_url', args=[id]), target_status_code=200)
这将确认正确的配置文件被重定向到您已决定应该触发此操作的任何数据。