Python 3单元测试,创建单元顿类功能的模拟



我正在努力为我的项目创建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

最新更新