我有一个夹具,可以创建在许多测试中使用的对象.
该对象具有属性-优先级(1-10)
现在,有很多测试需要“知道”对象的优先级(以便测试各种逻辑路径)
所以我可以有10种不同的灯具:
@pytest.fixture
def object_priority_1():
return MyObj(priority=1)
@pytest.fixture
def object_priority_2():
return MyObj(priority=2)
//....
@pytest.fixture
def object_priority_10():
return MyObj(priority=10)
但这似乎不对……我敢肯定每次都有一种方法可以将外部参数传递给灯具-我只是找不到
编辑:
需要澄清的是-我想要以下方面的东西:
@pytest.fixture
def my_object():
return MyObj(priority)
然后测试将是这样的:
def test_foo(my_object(1), my_object(6)):
//...
解决方法:
你可以做 :
@pytest.fixture
def my_object(priority):
return MyObj(priority)
def test_foo(my_object):
obj_1 = my_object(1)
assert something # 1
obj_2 = my_object(2)
assert something # 2
我想到了这个主意,然后找到了这个问与答:
我认为如果您的问题解决了,您的问题可能会考虑重复.
标签:pytest,python
来源: https://codeday.me/bug/20191119/2038995.html