gpt4 book ai didi

python - 如何对其中包含 for 循环的函数进行单元测试?

转载 作者:太空宇宙 更新时间:2023-11-04 01:25:23 26 4
gpt4 key购买 nike

我有这样的功能

def fun1(self, p1, p2):

#fun2 fetches data from db and creates doc_list - (return db.coll.find(query using p1 and p2), new query using p1 and p2)

doc_list = self.fun2(p1, p2)
for doc in doc_list:
self.fun3(p2, doc)

fun3 当前打印一条 logger.info 消息。我想为此函数编写一个单元测试,但我不清楚应该如何重构它,因为它有一个 for 循环。最终目标是进行单元测试,我可以使用自己的硬编码数据(欺骗 f2 数据)欺骗来自 db 查询函数的数据,并可能在单元测试 fun1 时测试所有列表内容。谢谢

最佳答案

使用 mock打包你可以:

  • 模拟类 fun1包含在覆盖 fun2 的自定义类中和 fun3
  • 模拟 class.fun2class.fun3Mock(return_value=<your_mocked_return_value>) mock 。要测试正确的调用,您可以使用 mock.call_countmock.call_args .

关于python - 如何对其中包含 for 循环的函数进行单元测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18176830/

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