私は実際にユニットテストを分離しようとしましたが、1つのことがうまくいかなかったときに画面全体が赤く点灯するのではなく、イニシャライザ内の何かが失敗した場合を除いて、すべてのインスタンスで動作しています。イニシャライザに依存するテストを分離する良い方法
は、これらのテストをチェックアウト:私がテストしてる事は完全に分離されるように
@setup_directory(test_path)
def test_filename(self):
flexmock(lib.utility.time).should_receive('timestamp_with_random').and_return(1234)
f = SomeFiles(self.test_path)
assert f.path == os.path.join(self.test_path, '1234.db')
@setup_directory(test_path)
def test_filename_with_suffix(self):
flexmock(lib.utility.time).should_receive('timestamp_with_random').and_return(1234)
f = SomeFiles(self.test_path, suffix='.txt')
assert f.path == os.path.join(self.test_path, '1234.txt')
は私が依存メソッドをからかっています。あなたが気づくのは、すべての単一のテストのためにクラスをインスタンス化する必要があるということです。 イニシャライザでエラーが発生した場合は、すべてのテストが失敗します。
これは、クラスの初期化子を呼び出す問題のコンストラクタです:
SomeFiles(*args)
は、初期化子またはオブジェクトのコンストラクタを隔離または模擬する方法はありますか?
モック\ _ \ _ init__。今私はそれについて考えているとき、簡単な答えのようです:)私はこのflexmock(SomeFiles)を行うためにflexmockを使用しました.should_receive( '\ _ \ _ init__') –