![](/img/trans.png)
[英]With Python unittest, how do I create and use a “callable object that returns a test suite”?
[英]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()
”,但call1
是Calculator1
實例而不是方法。 您想檢查“ 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.