対象クラス
abusiness.py
from threading import Thread class AThread(Thread): def run(self)->None: print("AThread!") # TODO 処理
AThread を実行するテストされるクラス
some.py
class Some: def exec(self)->None: a = AThread() a.start() a.join()
テストクラスで、モックであるダミーの Threadクラスを定義して
mocker.patch で new= で指定する
from some import Some from threading import Thread import time # ダミーのThreadクラス class ThreadMock(Thread): def run(self) -> None: print("ThreadMock run!") time.sleep(5) class TestSome: def test_1(self, mocker): mocker.patch("abusiness.AThread", new=ThreadMock) some = Some() some.exec()