我正在努力为我的项目创建UniteSts。
我有一个名为TimerHandler的类,需要进行测试。该课程使用称为AudioHandler的类。这两个课程都是单身人士。请参阅下面的代码。
timer_handler.py
class TimerHandler(metaclass=Singleton):
def play(self):
# some code that needs to be tested
AudioHandler().start()
audio_handler.py
class AudioHandler(metaclass=Singleton):
def start(self):
# some code that connects with an audio device
我正在尝试模拟AudioHandler的启动方法,因此它只会返回,并且不会尝试连接到音频设备。Untiment看起来像这样:
@patch.object(AudioHandler, 'start', return_value=None)
def test_play_pause(self, start):
self.timer_handler.play()
问题在于它仍在AudioHandler中的原始启动函数中运行代码。
如何编写一个删除/模拟AudioHandler中启动功能功能的测试功能?
预先感谢
您应该从导入的模块路径嘲笑一个类
@patch('timer_handler.AudioHandler')
之后,您可以将方法添加到模拟对象
请阅读https://docs.python.org/3/library/unittest.mock.html#where-to-patch