我阅读了生成单元测试的官方文档,但它太杂乱了。我必须为AdminPasswordChangeForm
生成一个单元测试用例,在views.py
中生成两个已定义的函数,这些函数正在更改is_staff
和is_active
的状态。
我还编写了简单的测试用例来注册用户。以下是views.py
中定义的方法(使用AdminPasswordChangeForm
更新密码)
def user_change_password(request, id):
user = User.objects.get(pk=id)
form = AdminPasswordChangeForm(user, request.POST)
if form.is_valid():
new_user = form.save()
msg = _('Password changed successfully.')
request.user.message_set.create(message=msg)
return HttpResponseRedirect('../../user/users')
else:
form = AdminPasswordChangeForm(user)
extra_context = {
'form': form,
'change': True
}
return direct_to_template(request,"users/user_password_change.html",
extra_context = extra_context)
答案 0 :(得分:1)
有很多关于如何编写测试的教程。 Django文档(像往常一样)在解释他们的框架在测试方面提供的内容方面做得很好。 https://docs.djangoproject.com/en/dev/topics/testing/?from=olddocs 此外,还有许多文章/幻灯片报道了测试的内容。 http://toastdriven.com/blog/2011/apr/10/guide-to-testing-in-django/
至于如何测试视图,你有几个选择
您可以使用内置请求工厂生成请求对象并直接调用您的函数。您可以确保在适当的时候返回重定向,或者模板或任何您期望的内容。
或者您可以在urls.py文件中对网址发出请求。
我的意思是测试AdminPasswordChangeForm
使用用户对象和POST字典来实例化它。检查以确保它正在创建正确的表单,如果您没有对它进行过多定制,则可以跳过测试,因为django可以很好地测试他们的代码。