Python中的属性错误

0 投票
2 回答
1800 浏览
提问于 2025-04-15 13:54

我想在Python中给一个对象添加一个单元测试的属性。

class Boy:

    def run(self, args):
        print("Hello")

class BoyTest(unittest.TestCase)

    def test(self)
         self.assertEqual('2' , '2')

def self_test():
    suite = unittest.TestSuite()
    loader = unittest.TestLoader()
    suite.addTest(loader.loadTestsFromTestCase(Boy.BoyTest))
    return suite

但是,每次我调用 self_test() 时,总是出现 "AttributeError: class Boy has no attribute 'BoyTest'" 的错误。为什么会这样呢?

2 个回答

-1

正如Alex所说,你正在尝试把BoyTest当作Boy的一个属性来使用:

class Boy:

    def run(self, args):
        print("Hello")

class BoyTest(unittest.TestCase)

    def test(self)
         self.assertEqual('2' , '2')

def self_test():
    suite = unittest.TestSuite()
    loader = unittest.TestLoader()
    suite.addTest(loader.loadTestsFromTestCase(BoyTest))
    return suite

注意这个变化:

suite.addTest(loader.loadTestsFromTestCase(Boy.BoyTest))

改成:

suite.addTest(loader.loadTestsFromTestCase(BoyTest))

这样做能解决你的问题吗?

3

在你使用的 loadTestsFromTestCase 这个函数里,你试图访问 Boy.BoyTest,也就是类 Boy 里的 BoyTest 属性。但是这个属性并不存在,正如错误信息所说的那样。那你为什么不直接用 BoyTest 呢?

撰写回答