django - 为多个模型编写 Django 测试用例
问题描述
TestCase
最近几天我正在尝试编写 Django ,但我未能为多个模型编写测试用例
这是我的models.py
from django.db import models
from django.contrib.auth.models import User
class Author(models.Model):
name = models.TextField(max_length=50)
class Category(models.Model):
name = models.CharField(max_length=100)
class Article(models.Model):
author = models.ForeignKey(Author, on_delete=models.CASCADE)
title = models.CharField(max_length=200)
body = models.TextField()
category = models.ForeignKey(Category, on_delete=models.CASCADE)
我试着像这样写TestCase。
这是我的tests.py
from django.test import TestCase
from blog.models import Article, Author, Category
class TestContactModel(TestCase):
def setUp(self):
self.article = Article(author='jhon', title='how to test', body='this is body', category='djangooo')
self.article.save()
def test_contact_creation(self):
self.assertEqual(article.objects.count(), 1)
def test_contact_representation(self):
self.assertEqual(self.article.title, str(self.article))
谁能告诉我如何制作这个测试?非常感谢您的时间和关怀
解决方案
author
是 a ,因此ForeignKey
您应该首先创建一个Author
,然后传递对该Author
对象的引用。category
外键也一样:
class TestContactModel(TestCase):
def setUp(self):
self.author = author = Author.objects.create(name='Douglas Adams')
self.category = category = Category.objects.create(name='sci-fi')
self.article = Article.objects.create(
author=author,
title="The Hitchhiker's Guide to the Galaxy",
body='42',
category=category
)
推荐阅读
- .net-core - 通过 SmtpClient/System.Net.Mail 发送多个附件后正在使用的文件
- hive - 使用现有 CSV 文件创建分区 Hive 表
- docker - 如何在 ubuntu 18.04 Bionic 上安装 docker-compose
- dart - Flutter Firestore如何通过手机号码检查客户是否存在
- python - 计算数据框中唯一共同作者的数量
- indy - IdHttp - 身份验证 Kerberos
- python-3.x - 无法获取页数。poppler 是否已安装并在 PATH 中?在 Mac 上
- jenkins - Jenkins Testrunner 运行 SOAPUI 测试
- keycloak - “会话没有必需的客户端”是什么意思?
- python - 加深对 Python 3 函数调用和变量的理解