\

Pythonのテストフレームワークであるpytestを使用して、例外が適切に発生することをアサートする方法について説明します。

pytest.raisesを使用した例外のアサーション

pytestでは、pytest.raisesを使用して特定の例外が発生することをアサートすることができます。以下にその使用例を示します。

import pytest

def test_passes():
    with pytest.raises(Exception) as e_info:
        x = 1 / 0

def test_passes_without_info():
    with pytest.raises(Exception):
        x = 1 / 0

def test_fails():
    with pytest.raises(Exception) as e_info:
        x = 1 / 1

def test_fails_without_info():
    with pytest.raises(Exception):
        x = 1 / 1

上記のコードでは、pytest.raisesを使用してExceptionが発生することをアサートしています。withステートメント内で例外が発生すると、その例外はpytest.raisesによってキャッチされ、テストはパスします。

注意点

  • pytest.raisesの引数にExceptionを指定すると、関係のない例外もキャッチされてしまうため、本来検証したい観点が検証できない可能性があります。
  • assert文はwith句と同じインデントレベルにする必要があります。

以上、Pythonとpytestを使用した例外のアサーションについての説明でした。これらの知識を活用して、より堅牢なテストコードを書くことができます。

投稿者 admin

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です