Python AttributeError:“Class”对象没有属性“name”SetUpClass

2024-06-28 18:47:24 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在为Django应用程序中的模型编写测试,但无法让它们运行。我已经尽我所能去解决和搜索,但找不到解决办法。在

运行测试时收到的错误是AttributeError: 'UserModelTest' object has no attribute 'firstUser',这说明我没有正确定义firstUser。在

下面是相关的代码。在

测试.py

from django.test import TestCase
from .models import ContactForm
from datetime import datetime, timedelta

class UserModelTest(TestCase):

    @classmethod
    def setUpClass(cls):
        cls.firstUser = ContactForm(
            email="first@user.com",
            name="first",
            timestamp=datetime.today() + timedelta(days=2)
        )
        cls.firstUser.save()

    def test_contactform_str_returns_email(self):
        self.assertEqual("first@user.com", str(self.firstUser))

模型.py

^{pr2}$

我使用的是Python版本3.5和Django版本1.10。在


Tags: djangofrompy模型testimportselfdatetime
1条回答
网友
1楼 · 发布于 2024-06-28 18:47:24

setUpClass对于Django已经被弃用了(我相信从1.8开始)。为了现在设置类,我需要使用setUpTestData。剩下的代码仍然有效。setUpTestData只在类中的所有测试方法之前运行一次(而不是在每个测试之前运行一次)。在

即代码应为:

class UserModelTest(TestCase):

    @classmethod
    def setUpTestData(cls):
        cls.firstUser = ContactForm(
            email="first@user.com",
            name="first",
            timestamp=datetime.today() + timedelta(days=2)
        )
        cls.firstUser.save()

    def test_contactform_str_returns_email(self):
        self.assertEqual("first@user.com", str(self.firstUser))

有关setUpTestData的更多信息可以在here找到。在

相关问题 更多 >