Python:unittest,AttributeError 试图从测试类的 __init__ 访问

使用 unittest 测试类的属性有一些问题。这是一个简单的例子


示例类:


class Company(object):

    def __init__(self, name):

        self.name = name

这个类的 TestSuite 用一个简单的例子来检查它的name属性值:


import unittest

class CompanySuite(unittest.TestCase):


    def setUp(self):

        self.company = Company


    def tearDown(self):

        del self.company


    def test_company_name(self):

        check_name = "NewestCompany"

        self.assertEqual(check_name, self.company.name, "Name isn't correct")

和main模块:


if __name__ == "__main__":

    firm = Company("NewestCompany")

    print(firm.name)

    unittest.main()

总之,它给出了主模块的执行结果:


NewestCompany

E

======================================================================

ERROR: test_company_name (__main__.CompanySuite)

----------------------------------------------------------------------

Traceback (most recent call last):

  File "D:/test/main 2.py", line 19, in test_company_name

    self.assertEqual(check_name, self.company.name, "Name isn't correct")

AttributeError: type object 'Company' has no attribute 'name'


----------------------------------------------------------------------

Ran 1 test in 0.001s


FAILED (errors=1)

找不到问题出在哪里 - 如何从 正确访问此name属性__init__?


编辑:


好的,事实证明它可以通过以下方式修复:


name向CompanyinSetUp方法添加固定属性:


def setUp(self):

    self.company = Company(name="NewestCompany")

添加具体实例作为company值:


def setUp(self):

    self.company = firm

所以更新的问题 - 有什么方法可以定义SetUp以便它与实例一起使用,这将取决于 main 中的用户?


小唯快跑啊
浏览 147回答 1
1回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python