簡體   English   中英

如何使用“對象不可調用”修復 python 中的 UNITTEST 錯誤?

[英]How do I fix UNITTEST ERROR in python with 'object is not callable'?

#calculater.py

class Calculator1:
    
    def __init__(self):
        self.result = 0

    def add(self, num):
        self.result += num
        return self.result
#calculater_test.py

import unittest
from calculater import Calculator1

cal1 = Calculator1()

class Calculator1Test(unittest.TestCase):

    def test_Calculator1(self):
        print(cal1.add(3))
        self.assertEqual(3, cal1())

if __name__ == '__main__':  
    unittest.main()

錯誤代碼是“TypeError: 'Calculator1' object is not callable”。 但是,當我清除我寫的第 12 行 'self.assertEqual(3, cal1())' 時,它工作正常。 但是,如果擦除它,我會在擦除它時看到底部的一個紅點。 底部有一個紅點是什么意思?

主要目的如果我清除'self.assertEqual(3,cal1()),我不能故意改變值來出錯,所以我想知道我該如何修復它,我該如何改變值犯錯誤。 最后如何修復“Calculator1”中的錯誤 object is not callable”。

我是用翻譯寫的,因為我英語不好。 對不起。

def test_Calculator1(self):
        print(cal1.add(3))
        self.assertEqual(3, cal1()) # <--- here

您調用“ call1() ”,但call1Calculator1實例而不是方法。 您想檢查“ add ”方法的結果。 我認為你的意思是:

def test_Calculator1(self):
        result = cal1.add(3)
        print(result)
        self.assertEqual(3, result)

更好的是不要在 UnitTest 中使用 print。 您的 UnitTest 應該很小。 self.assertEqual(3, cal1.add(3))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM