Вот минимальный пример ( полный код ), приложение 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()
)?