matobaの備忘録

育児しながら働くあるエンジニアの記録

pytestで繰り返し行う用意をfixtureに設定する

pytestで繰り返し行う用意をfixtureに設定するメモ。

pytestでfixtureを使う時がある。 何を気をつけるかいつも忘れてる気がするのでメモする。

導入方法

こんな感じに書く。

import pytest

@pytest.fixture
def target_method():
    from my_module import my_method
    return my_method

def test_normal(target_method):
    parameter = []
    result = my_method(parameter)
    assert result

説明

@pytest.fixture をつけた関数は、fixtureとして扱われる。 testケースとなる関数を書き、その引数にfixtureとして扱っている関数と同じ名前の引数をセットすると、自動的にfixtureで指定された関数の実行結果が返ってくる。

よくみるのはモジュールのimportを一箇所にまとめてる。

あとは、共通して挿入したい何かがあったらfixtureでやってるような気がする。