gpt4 book ai didi

python - 以编程方式检测是否正在测试 python 代码

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

python 程序如何知道它是否正在被测试?例如:

def foo():
if foo_being_tested:
pseudorandom()
else:
random()

在测试时,程序应该使用伪随机序列以便能够与程序的 C 代码版本进行比较,并且在常规执行中应该使用来自 numpy 的随机序列。

最佳答案

如果不检查调用堆栈,就不能。

一般来说,你根本不应该这样做;通过在测试时更改您的代码,您没有正确地测试您的代码。

相反,您将使用模拟来替换您的代码使用的任何部分(被测代码使用但不是其一部分的任何部分)。对于您的具体示例,您将模拟 random();在 Python 3.3 及更高版本上,您可以使用 unittest.mock , 可用为 mock on PyPI对于其他 Python 版本,或者您可以在测试期间手动换出 module_under_test.random

您还可以在单​​元测试中设置一个环境变量,以明确表示您正在运行测试,但理想情况下应避免这种情况。

关于python - 以编程方式检测是否正在测试 python 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25425106/

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