【pytest】工厂化的fixtures
作者:互联网
-
前言:在一个测试用例中需要多次调用同一个fixture的时候,工厂化的 fixture 的模式对于一个 fixture 在单一的测试中需要被多次调用非常有用。
之前写fixture是直接return一个数据,在测试用例中可以直接使用,现在我们需要返回一个生成数据的函数,这样就能在用例中多次调用了。 -
Factories as fixtures
- “Factories as fixtures”模式可以帮助在一次测试中多次需要一个fixture的结果的情况下。
- fixture不是直接返回数据,而是返回一个生成数据的函数。然后可以在测试中多次调用此函数。
-
1、创建fixture工厂
- 1.1 提供一个fixture工厂,可以在单个测试中多次需要夹具结果的情况下提供帮助.夹具不是直接放回数据,而是返回一个生产数据的函数.然后可以在测试中多次调用此函数。
- 1.2 示例代码
import pytest
@pytest.fixture()
def get_data():
def fixtrue_factory(name):
return {"name":name,"orders":[]}
return fixtrue_factory
def test_demo(get_data):
print(get_data("zhangsan"))
print(get_data("lisi"))
print(get_data("wangwu"))
-
1.3 运行结果
-
1.4 结果分析
- 通过上述示例,咱们可以看到,我们创建了fixture,但返回的不是数据,而是一个函数,这样我们根据传入的参数不同,返回不同的数据,从而形成我们想要的工厂
-
2、工厂进阶-管理工厂的数据
- 2.1 示例代码
import pytest
@pytest.fixture()
def get_data():
data_mange = []
def fixture_fac(name):
data_mange.append(name)
print("创建数据:",name)
yield fixture_fac
print(data_mange)
def test_demo1(get_data):
print(get_data("zhangsan"))
print(get_data("lisi"))
print(get_data("wangwu"))
- 2.2 结果分析
- 通过上述示例,我们不光创建了工厂,还对数据进行了管理,当然,不一定是数据也可以是其它的操作,这样做之后,不管里面是什么,我们都能有效地进行管理。
标签:name,get,fixture,工厂化,pytest,print,fixtures,data,def 来源: https://www.cnblogs.com/xwltest/p/16614471.html