gpt4 book ai didi

python - 如何为 python 单元测试提供模拟类方法?

转载 作者:太空狗 更新时间:2023-10-29 17:26:09 26 4
gpt4 key购买 nike

假设我有一个这样的类(class)。

class SomeProductionProcess(CustomCachedSingleTon):

@classmethod
def loaddata(cls):
"""
Uses an iterator over a large file in Production for the Data pipeline.
"""
pass

现在在测试时,我想更改 loaddata() 方法中的逻辑。这将是一个不处理大数据的简单自定义逻辑。

我们如何使用 Python Mock UnitTest 框架在测试时提供 loaddata() 的自定义实现?

最佳答案

这里有一个使用模拟的简单方法

import mock


def new_loaddata(cls, *args, **kwargs):
# Your custom testing override
return 1


def test_SomeProductionProcess():
with mock.patch.object(SomeProductionProcess, 'loaddata', new=new_loaddata):
obj = SomeProductionProcess()
obj.loaddata() # This will call your mock method

如果可以的话,我建议您使用 pytest 而不是 unittest 模块。它使您的测试代码更加简洁,并减少了您使用 unittest.TestCase 样式测试获得的大量样板文件。

关于python - 如何为 python 单元测试提供模拟类方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38579535/

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