使用 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 中的用户?
相关分类