概要
behaveでステップの文からパラメータを読み込むときに変換処理を行う方法を記載しています。
ポイント
- parse モジュールを使って、変換関数を定義する
register_type(型名=変換関数)
で登録する- ステップの実装で
{パラメータ名:型名}
でステップパラメータを読み込む
コード
step.pyimport 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)