gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 11:46:45 28 4
gpt4 key购买 nike

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

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

timer_handler.py

class TimerHandler(metaclass=Singleton):

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

AudioHandler().start()

音频处理程序.py
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中原来的start函数中的代码。

如何编写一个测试函数来删除/模拟 AudioHandler 中 start 函数的功能?

提前致谢

最佳答案

您应该从导入它的模块路径模拟一个类

@patch('timer_handler.AudioHandler)
之后,您可以将您的方法添加到模拟对象
请阅读
https://docs.python.org/3/library/unittest.mock.html#where-to-patch

关于Python 3 单元测试,创建单例类函数的模拟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44701134/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com