当我运行我的pytest和mock补丁python文件中的一个全局变量时,它被分配了一个函数调用来捕获输出,我不能mock它(我不想在测试期间实际执行这个函数)。我发现这个函数仍然被调用。我如何阻止它被调用?
file 1: /app/file1.py
def some_func():
return "the sky is like super blue"
file 2: /app/file2.py
from app.file1 import some_func
VAR1 = some_func()
file 3: /tests/app/test_file2.py
import mock
import pytest
from app.file2 import VAR1
@mock.patch('app.file2.VAR1', return_value=None)
def test_file_2_func(baba_fake_val):
print('made it to my test :)'
print(VAR1)
1条答案
按热度按时间bqjvbblv1#
1.导入
app.file2
时会执行VAR = some_func()
,所以如果要阻止som_func
调用,必须在导入前进行mock。1.为了防止这个函数调用,你必须模拟
some_func
,而不是VAR1
,如下所示: