6

OS/モジュール レベルの Python 関数を呼び出す Python 単体テスト コードに関連します。単体テスト中に、いくつかの python システム コールをオーバーロードして、テストでモジュールのさまざまなパスを駆動します。この手法は、分離されたテスト用に (関連する質問で) Monkey Patch と呼ばれます。

「鼻」のようにPythonのテストを並行して実行するとどうなるか少し心配です。2 つのテストが並行して実行され、両方が os.path.exists メソッドをモックしたい場合はどうなりますか?

テストのコンテキストでシステムまたはモジュール関数を選択的にオーバーライドする方法はありますか?

以下を例にとります

fixture.py (say that is the module under test)

def my_func():
    some_stuff

test_fixture.py (say this is my test case)


class MyTest(unittest.TestCase):

    def test_mine(self):
         fixture.my_func = my_new_func
         fixture.execute_some_func_that_calls_my_func()
         #What happens if another test is executing at the same time and accesses
         #my_func I don't want it to start executing my_new_func?
4

1 に答える 1