behaveでステップパラメータをパース時に変換する

概要

behaveでステップの文からパラメータを読み込むときに変換処理を行う方法を記載しています。

ポイント

  • parse モジュールを使って、変換関数を定義する
  • register_type(型名=変換関数) で登録する
  • ステップの実装で {パラメータ名:型名} でステップパラメータを読み込む

コード

step.py
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)

参考

コメントする