Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3单元测试,创建单例类函数的模拟_Python_Python 3.x_Unit Testing_Mocking - Fatal编程技术网

Python 3单元测试,创建单例类函数的模拟

Python 3单元测试,创建单例类函数的模拟,python,python-3.x,unit-testing,mocking,Python,Python 3.x,Unit Testing,Mocking,我正在为我的项目创建单元测试 我有一个名为TimerHandler的类需要测试。此类使用名为AudioHandler的类。这两个类都是单例。请参阅下面的代码 timer_handler.py class TimerHandler(metaclass=Singleton): def play(self): # some code that needs to be tested AudioHandler().start() class AudioHand

我正在为我的项目创建单元测试

我有一个名为TimerHandler的类需要测试。此类使用名为AudioHandler的类。这两个类都是单例。请参阅下面的代码

timer_handler.py

class TimerHandler(metaclass=Singleton):

    def play(self):
        # some code that needs to be tested

        AudioHandler().start()
class AudioHandler(metaclass=Singleton):

    def start(self):
        # some code that connects with an audio device
音频处理器.py

class TimerHandler(metaclass=Singleton):

    def play(self):
        # some code that needs to be tested

        AudioHandler().start()
class AudioHandler(metaclass=Singleton):

    def start(self):
        # some code that connects with an audio device
我试图模拟AudioHandler的start方法,因此它只返回None,而不会尝试连接到音频设备。单元测试如下所示:

@patch.object(AudioHandler, 'start', return_value=None)
def test_play_pause(self, start):

    self.timer_handler.play()
问题是它仍在运行AudioHandler中原始启动函数中的代码

如何编写删除/模拟AudioHandler中启动函数功能的测试函数

提前谢谢