テストのためだけに引数を__init__
に公開するテスト対象のクラスがあります。私のテストでこのunittestの__init__メソッドのデフォルト引数を置き換える方法
class MyClass(object):
def __init__(self, start_time=None):
if start_time is None:
start_time = time.time()
が、私は偽の時間を使ってのstart_timeに渡したいように見えますので、私はsetUp()
最初の時間を取得し、すべてのテストメソッドに渡します。
class MyclassTest(TestCase):
def setUp(self):
self.fake_start_time = time.time()
def test_one(self):
x = MyClass(start_time=self.fake_start_time)
...
def test_two(self):
x = MyClass(start_time=self.fake_start_time)
...
このすべてが動作しますが、私はすべての単一のテストでstart_time=self.fake_start_time
を書かないようにするための方法があります場合、私は思ったんだけど。どういうわけか__init__
メソッドのデフォルト引数をsetUp()
に置き換えることはできますか?
私は醜い方法を考え出しましたが、より標準的なアプローチがあるかどうか疑問に思っていました。おそらくmock.patch
に基づいていますか?
私の解決策とは異なり、それはインスタンス化にあたり、テストの引数を追加することができますので、これはクールです。ニース! – ErlVolton