Требуется ли для тестов Django моделей использование базы данных? - PullRequest
0 голосов
/ 19 июня 2020

Вот минимальный пример ( полный код ), приложение foobar с классом Fruit, которое я хочу протестировать методом __str__().

foobar.models:

from django.db import models

class Fruit(models.Model):
    """An MVC for testing models without using Django DB"""
    name = models.CharField(max_length=42)

    def __str__(self):
        return self.name.upper()

foobar.tests

from pytest import mark
from foobar.models import Fruit

fruit_name = "cherry"

def test_fruit__str__py():
    """testing Fruit.__str__() whitout using Django DB"""
    test_fruit = Fruit(name=fruit_name)
    assert test_fruit.__str__() == fruit_name.upper()

@mark.django_db
def test_fruit__str__dj():
    """testing Fruit.__str__() using Django DB"""
    Fruit.objects.create(name=fruit_name)
    test_fruit = Fruit.objects.last()
    assert test_fruit.__str__() == fruit_name.upper()

Вопрос : Поскольку метод, который вы бы тестировали, не включает базу данных или предварительно загруженный набор данных, и если я хочу unit-test , достаточно ли уместен первый (test_fruit__str__py())?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...