这是我的灯具,它返回Foo对象。我修补Foo的内部配置变量,然后使用参数实例化该类。
@pytest.fixture()
def foo_fix():
patch(Foo.config, "hello"):
def wrapper(parameter):
return Foo(parameter=parameter)
yield wrapper
在我的测试中,我这样做:
def test_foo_1(foo_fix):
foo = foo_fix(parameter=1)
assert foo.go() == "abc"
我想从测试函数内部更改Foo.config值。我尝试将foo_fix嵌套在另一个函数中,但无法正常工作。
有没有一种干净的方法?
答案 0 :(得分:0)
这应该有效:
@pytest.fixture
def foo_fix():
def wrapper(parameter, config):
patch(Foo.config, "hello"):
return Foo(parameter=parameter)
yield wrapper
def test_foo_1(foo_fix):
foo = foo_fix(parameter=1, config="xyz")
assert foo.go() == "abc"