我有一个项目的下一个结构:
# A.py
def foo():
result = None
# some long, very long calculations
return result
# B.py
from A import foo
def bar():
result = foo()
# some not so long and complex calculations
return some_other_result
# test.py
import A
import B
def setup_module():
A.foo = lambda: return "Hello"
def test_foo():
assert B.foo() == "Hello"
但是,这不起作用,因为在B
foo
直接导入。
如何存根A.foo
功能?
注意:我无法修改A.py
和B.py
。只有测试文件,因此from A import foo
到import A
之间的A.foo
不会发生变化,B.py
中 Authentication token = new UsernamePasswordAuthenticationToken(entity, null, entity.getAuthorities());
Authentication authentication = this.authenticationProvider.authenticate(token);
的使用也是可能的。
答案 0 :(得分:1)
您可以在导入B
之前修补此功能:
import A
def setup_module():
A.foo = lambda: "Hello"
def test_foo():
import B
assert B.foo() == "Hello"
这样,A.foo
已被时间B
导入A.foo
取代。