[英]Factoring out common setup code for a pytest fixture
我正在用 pytest 編寫一些測試,並且我認為這是一個簡單的問題,但不確定正確的方法。 我有一些這樣的代碼:
@pytest.fixture
def obj1():
...setup object 1...
return obj
@pytest.fixture
def obj2():
....setup object 2 ...
return obj
def test_val_obj_1(obj1):
...some common boilerplate...
output = some_function(obj1)
assert output['important_key'] == some_values
def test_val_obj_2(obj2):
...some common boilerplate...
output = some_function(obj2)
assert output['important_key'] == some_values
對於我的兩個測試, ...some common boilerplate...
和 some_function() 是相同的,所以我希望在其他地方有這個。 我是否只需定義一個正常的 function 來執行此操作? 還是我需要對固定裝置做一些特定的事情? 我還沒有完全了解文檔中的“參數化”固定裝置,也無法弄清楚這是我要問的還是不同的用例。
parameterized
可能會對您有所幫助,但它可能取決於樣板中發生的事情
@pytest.mark.parametrize("obj,some_value", [(obj1, some_value), (obj2, some_value)])
def test_val_obj(obj, some_value):
...some common boilerplate...
output = some_function(obj)
assert output['important_key'] == some_value
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.