【发布时间】:2018-11-09 09:42:13
【问题描述】:
我是单元测试和 python 的新手。我开始在 python 中对不同模块(用 c 开发)进行单元测试。在某些情况下,我发现该函数不会返回任何值并且不会修改任何全局变量的值。
在这种情况下,我将如何根据一些局部变量值来验证函数的功能。由于 local 在函数之外不可用,我无法验证局部变量的值。单元测试这些功能的正确方法应该是什么?
我通过下面的链接询问这个问题,这表明我们不应该对局部变量执行单元测试。
override python function-local variable in unittest
在这里,我可以看到一些可用于在函数执行结束时测试局部变量的方法。 https://coderanch.com/t/679691/engineering/test-local-variable-method-junit
有什么方法可以导出局部变量以用于单元测试该函数?
【问题讨论】:
-
如果一个函数没有返回或修改任何全局变量......这个函数到底在做什么?
-
@RishikeshRaje 执行 IO?
-
是的,它正在修改内部控制器寄存器并在某些情况下调用静态函数。调用其他已经被存根的外部函数。
-
当然,在调用其他函数的情况下,您可以创建一个模拟对象并验证以下内容:a) 模拟被调用的次数,b) 模拟对象的参数调用。
-
@kapilddit:在此处查看模拟文档:docs.python.org/3/library/unittest.mock.html 特别是查找“call_count”部分。
标签: python c unit-testing