在 py.test monkeypatching/mocking documentation这没有提到,但是可以对函数体中引入的局部变量进行猴子补丁吗?
我的实验:
def my_method():
my_var = 'foo'
return my_var[:2]
测试是:
def test_my_method(monkeypatch):
monkeypatch.setattr(my_module.MyClass.my_method.my_var, lambda: 'bar')
assert my_method() == 'ba'
AttributeError: 'function' object at MyClass.my_method has no attribute 'my_var'
最佳答案
这是不可能的,因为该变量提前不存在,而且据我所知 py.test 无法 Hook 局部变量的创建。
关于python - 可以对函数体中引入的局部变量进行猴子补丁吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40997705/