pytest fixture-自動適配fixture

2022-08-03 17:21 更新

有時,您可能希望擁有一個(甚至幾個)??fixture??,您知道所有的測試都將依賴于它。??autouse fixture??是使所有測試自動請求它們的一種方便的方法。這可以減少大量的冗余請求,甚至可以提供更高級的??fixture??使用。

我們可以將??autouse =True??傳遞給??fixture??的裝飾器,從而使一個??fixture??成為??autouse fixture??。下面是一個如何使用它們的簡單例子:

# contents of test_append.py
import pytest


@pytest.fixture
def first_entry():
    return "a"


@pytest.fixture
def order(first_entry):
    return []


@pytest.fixture(autouse=True)
def append_first(order, first_entry):
    return order.append(first_entry)


def test_string_only(order, first_entry):
    assert order == [first_entry]


def test_string_and_int(order, first_entry):
    order.append(2)
    assert order == [first_entry, 2]

在本例中,??append_first fixture??是一個自動使用的??fixture??。因為它是自動發(fā)生的,所以兩個測試都受到它的影響,即使沒有一個測試請求它。但這并不意味著他們不能提出要求,只是說沒有必要。


以上內容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號