は、次のことを考えてみましょう:Unittest - オブジェクトによるデータ駆動型エッジケーステスト?
import unittest
class MyClass:
def __init__(self, dict: {}):
try:
if self.validate_dict(dict):
self.data = dict
except Exception as e:
raise Exception('Unable to create MyClass: {}'.format(str(e)))
def validate_dict(self, dict: {}):
if 'special_key' not in dict:
raise Exception('Missing Key: special_key')
# ... perhaps more complicated validation code...
return True
class MyTests(unittest.TestCase):
def test_bad_validation(self):
with self.assertRaises(Exception) as context:
test_dict = {}
test_class = MyClass(test_dict)
self.assertTrue('Unable to create' in str(context.exception))
...私は離れてちょうど{}
からunittestのに多くのテストケースを追加する方法を、これはユニットテストのこの機能をためひどいなアプローチではないと仮定すると?
特定のテストのすべてのテストケースを素早く確認し、新しいテストケースをすばやく追加すると便利です。
この非常に問題に取り組むために作られたライブラリDDTが見つかりましたが、dictのようなオブジェクト全体をアンパックすることなくテスト引数として渡す方法はないようです。この場合、私は鍵の存在をテストしたい(そして多くの人がいるかもしれない)ので、DDTのような個々の議論にそれらを解くことは貧弱な解決策のように思えます。
unittest
は次のような機能をサポートしていますか?私はpytest
は知っているが、私はunittest
で可能なことを最初に見たかった。
このコードをユニットテストするための他のアプローチも認められます。
作品。ありがとうございました。 – moogooloo