Написание тест-кейса для нескольких моделей - PullRequest
1 голос
/ 16 июня 2019

Я пытаюсь написать Django TestCase за последние несколько дней, но мне не удалось написать тестовый сценарий для нескольких моделей

Это мой 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))

Может кто-нибудь сказать мне, как я могу создать этот тест?Мы ценим ваше время и заботу

1 Ответ

0 голосов
/ 16 июня 2019

author - это ForeignKey, поэтому вы должны сначала создать Author, а затем передать ссылку на этот Author объект. То же самое для внешнего ключа category:

class TestContactModel(TestCase):

    def setUp(self):
        self.author = <b>author</b> = Author.objects.create(name='Douglas Adams')
        self.category = <b>category</b> = Category.objects.create(name='sci-fi')
        self.article = Article.objects.create(
            author=<b>author</b>,
            title="The Hitchhiker's Guide to the Galaxy",
            body='42',
            category=<b>category</b>
        )
...