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()
どんな助けにも本当に感謝します。