使用 unittest 测试类的属性有一些问题。这是一个简单的例子示例类:class Company(object): def __init__(self, name): self.name = name这个类的 TestSuite 用一个简单的例子来检查它的name属性值:import unittestclass 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()总之,它给出了主模块的执行结果:NewestCompanyE======================================================================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.001sFAILED (errors=1)找不到问题出在哪里 - 如何从 正确访问此name属性__init__?编辑:好的,事实证明它可以通过以下方式修复:name向CompanyinSetUp方法添加固定属性:def setUp(self): self.company = Company(name="NewestCompany")添加具体实例作为company值:def setUp(self): self.company = firm所以更新的问题 - 有什么方法可以定义SetUp以便它与实例一起使用,这将取决于 main 中的用户?
添加回答
举报
0/150
提交
取消