我想使用猴子补丁将所有语句如 time.sleep(5)
更改为 myServer.sleep(5)
。我怎样才能意识到呢?非常感谢!
import test
import subprocess
import ast
import os
import time
import sys
if __name__ == "__main__":
def insomniac(duration):
pass # don't sleep
_original_sleep = time.sleep
time.sleep = insomniac
def dont_write(stuff):
pass # don't write
_original_write = sys.stdout.write
sys.stdout.write = dont_write
execfile("test.py")
exit(0)
最佳答案
如果您的重点是测试,即您希望确保以特定方式调用某些您无法控制的外部库中的可调用项,那么可以使用测试库来帮助您,例如 mock
.正确设置所有这些东西可能非常复杂,因此当我编写代码时,我通常会尝试以尽量减少模拟使用的方式来构建我的代码。
看看 documentation for mock
如果你真的想让你的脚趾朝这个方向弄湿。此时,您可能应该正式化您的测试技术以利用 unitttest
.如果你迷路了,Writing unit tests in Python: How do I start? .
关于python - 如何在 Python 中使用猴子修补来替换特定参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22397940/