Django测试用例测试模型失败

要么

我正在为我的模型编写测试用例以测试,__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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章