模拟没有 `if __name__=="__main__":` 块的脚本
Mocking a script with no `if __name__=="__main__":` block
假设我的根目录中有文件 main.py
和 common.py
。这些代表我暂时不想接触的第三方模块。假设我还有一个 test.py
文件,我想用它来测试 main.py
.
common.py
包含以下内容:
def hello():
print("hello")
main.py
包含以下内容:
from common import hello
hello()
有没有办法对 test.py
中的 hello
函数进行猴子修补,以便导入 main.py
时使用模拟函数?例如,我想猴子补丁 hello
打印出 goodbye
.
非常简单:
import common
common.hello = lambda: print("goodbye")
import main
假设我的根目录中有文件 main.py
和 common.py
。这些代表我暂时不想接触的第三方模块。假设我还有一个 test.py
文件,我想用它来测试 main.py
.
common.py
包含以下内容:
def hello():
print("hello")
main.py
包含以下内容:
from common import hello
hello()
有没有办法对 test.py
中的 hello
函数进行猴子修补,以便导入 main.py
时使用模拟函数?例如,我想猴子补丁 hello
打印出 goodbye
.
非常简单:
import common
common.hello = lambda: print("goodbye")
import main