pythonのテストでmockを使う

pytest

固定値を返却させたい場合

mockerを使う場合はpytest-mockをインストールしておく必要がある

import numpy as np


def get_rand():
    return np.random.randint(0, 100)


def test_random(mocker):
    mocker.patch("numpy.random.randint", return_value=55)
    assert get_rand() == 55

特定の値を順番に返却させたい場合

import numpy as np


def get_rand():
    return np.random.randint(0, 100)


def test_random(mocker):
    mocker.patch("numpy.random.randint", side_effect=[5, 55, 999])
    assert get_rand() == 5
    assert get_rand() == 55
    assert get_rand() == 999