我需要使用unittest来测试这段代码。请帮我弄清楚它,并说明它们是如何被测试的
def post(self, request, pk):
form = ReviewForm(request.POST)
movie = Movie.objects.get(id=pk)
if form.is_valid():
form = form.save(commit=False)
if request.POST.get("parent", None):
form.parent_id = int(request.POST.get("parent"))
form.movie = movie
form.save()
return redirect(movie.get_absolute_url())
Django的单元测试使用Python标准库模块:unittest。此模块使用基于类的方法定义测试
要使用它,请转到应用程序文件夹中的test.py。在那里,您可以开始编写测试:
您需要做的第一件事是导入TestCase和要测试的模型,例如:
从django.test导入TestCase 从myapp.models导入帖子
其次,您需要编写测试。想想,你需要测试什么?例如,如果它是一个创建帖子的表单,则需要测试该帖子是否已创建并保存在数据库中
为此,您需要设置初始状态,以便在安全环境中运行测试
让我们以这篇文章为例:
setUp
定义的代码是否达到了我们预期的效果李>因此,在我们的
class CreateNewPostsTest
中,您需要定义一个新函数来运行测试:这段代码将运行一个
assertEqual
,它将检查数据库中的对象计数是否等于1(因为我们刚刚在设置中创建了一篇文章)现在,您需要使用以下工具运行测试:
python manage.py测试
它将运行测试,您将在终端中看到测试是否失败
在您的情况下,您可以对您的电影模型执行相同的操作
您可以在Django文档中找到有关测试的更多信息:https://docs.djangoproject.com/en/3.1/topics/testing/overview/
相关问题 更多 >
编程相关推荐