Bul*_*ula 3 python unit-testing python-unittest
python程序如何知道它是否正在被测试?例如:
def foo():
if foo_being_tested:
pseudorandom()
else:
random()
Run Code Online (Sandbox Code Playgroud)
在测试时,程序应使用伪随机序列,以便能够与程序的 C 代码版本进行比较,并且在常规执行中numpy应使用随机序列。
如果不检查调用堆栈,您就不能这样做。
一般来说,你根本不应该这样做;通过在测试时更改代码,您没有正确测试代码。
相反,您可以使用模拟来替换代码使用的任何部分(被测试代码使用的任何部分,但不是它的一部分)。对于您的具体示例,您将模拟random(); 在 Python 3.3 及更高版本上,您可以使用,在 PyPI 上unittest.mock可用于其他 Python 版本,或者您可以在测试期间手动换出。mockmodule_under_test.random
您还可以在单元测试中设置一个环境变量,以明确您正在运行测试,但理想情况下应该避免这种情况。
| 归档时间: |
|
| 查看次数: |
1416 次 |
| 最近记录: |