我正在为我的模型编写测试用例以测试,__str__
但是显然失败了。
这是我的tests.py:
from todoapp.models import User, Task
from django.test import TestCase
class UserModelTest(TestCase):
def setUp(self):
self.user = User.objects.create(
first_name='john',
last_name='doe',
email='[email protected]',
password='johndoe')
def test_string_representation(self):
object_name = User.objects.get(id=50)
expected_object_name = object_name.email
self.assertEqual(expected_object_name, str(object_name))
这是我的models.py:
class User(AbstractUser):
username = None
email = models.EmailField(unique=True)
USERNAME_FIELD = 'email'
REQUIRED_FIELDS = ['first_name', 'last_name']
def __str__(self):
return self.email
PS:具有的用户id=50
已经存在
Django在您运行测试时会创建一个测试数据库,因此听起来好像该测试数据库id=50
中不存在的用户。
您已经在该setUp
方法中创建了一个用户,因此建议您在测试中获取该用户。
def test_string_representation(self):
object_name = User.objects.get(email='[email protected]')
expected_object_name = object_name.email
self.assertEqual(expected_object_name, str(object_name))
请注意,在测试期间获取对象时,通常不应依赖id。id可以在每次运行之间更改,例如,如果测试以不同的顺序运行。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句