为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

小唯快跑啊 2021-08-14 12:54:30
使用 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 中的用户?
查看完整描述

1 回答

  • 1 回答
  • 0 关注
  • 146 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信