概要
behaveでステップの文からパラメータを読み込むときに変換処理を行う方法を記載しています。
ポイント
- parse モジュールを使って、変換関数を定義する
register_type(型名=変換関数)
で登録する- ステップの実装で
{パラメータ名:型名}
でステップパラメータを読み込む
コード
import parse
from behave import step, register_type, use_step_matcher
from behave.runner import Context
from pyassert import assert_that
@parse.with_pattern(r'\d+')
def parse_integer(text: str) -> int:
return int(text)
use_step_matcher("parse")
register_type(Integer=parse_integer)
@step("ステータスコードが {status_code:Integer} である")
def step_impl(context: Context, status_code: int) -> None:
# intに変換されていることを確認する
assert_that(status_code).is_instance_of(int)