我需要测试我的 python 代码是否有异常,但我似乎无法运行正确的语句。
当我测试我的生产代码时,我可以看到抛出了异常,但是当我在单元测试文件中测试这个异常时,我得到了这个:
testincorrectparam (unittestearnings.TestEarningsArgs)
should raise error when param not an integer ... "3v" is not a valid argument. i should be an integer
ERROR
我通读了关于 SO 的类似问题,但我只是无法为我的问题找到令人满意的答案。
生产代码如下所示:
class Earnings():
def printd(i=0):
try:
i = int(i)
except Exception:
print('"' + i + '"' + " is not a valid argument. i should be an integer")
sys.exit(0)
单元测试代码是这样的:
from earnings import Earnings
import unittest
class TestEarningsArgs(unittest.TestCase):
def testincorrectparam(self):
'''should raise error when param not an integer'''
e = Earnings()
value = "3v"
self.assertRaises(Exception, e.printd(i=value))
if __name__ == "__main__":
unittest.main()
非常感谢任何帮助。