ティアダウンコードのない(デフォルトの)機能スコープフィクスチャの利点は何ですか?テスト開始時に関数を呼び出さないのはなぜですか?例えばファンクションスコープとティアダウンコードのないフィクスチャのメリットは何ですか?
、書き込みの利益の何:
@pytest.fixture
def smtp():
return smtplib.SMTP("smtp.gmail.com")
def test_ehlo(smtp):
response, msg = smtp.ehlo()
# ...
の代わりに、単に:
def create_smtp():
return smtplib.SMTP("smtp.gmail.com")
def test_ehlo():
smtp = create_smtp()
response, msg = smtp.ehlo()
# ...
備品が有用である理由私たちはティアダウンコードを必要とするとき、私は理解しています。関数以外のスコープを持つフィクスチャがなぜ有用であるのかも理解しています。複数のテストで同じ「外部」オブジェクトを再利用したい場合があります(作成にかかる時間を節約するため、これは別々のテストの間に見えにくい結合を作り出すので、かなり危険です)。
これは理にかなっていますが、治具を必要とするテストの半分以下は、これらのものが2つ以上必要だと思います。 – max