SpecFlowステップをStepArgumentTransformation
に依存するように変換したので、複数のプリミティブパラメータを処理する必要はありませんでしたが、変換メソッドで構築された1つの複雑なパラメータを使用できます。ステップの引数変換を使用するときに、SpecFlowステップメソッドから余分なパラメータを削除するにはどうすればよいですか?
しかし、私はステップからプリミティブパラメータを削除できないことを知りました。これは、 "パラメータ数の不一致"例外が発生するためです。
[Given("(something (\d) (\d))")]
public void Step(Something something)
{
// Does not work (parameter count mismatch)
}
[Given("(something (\d) (\d))")]
public void Step(Something something, int x, int y)
{
// Works, but is slightly confusing due to unused parameters
}
[StepArgumentTransformation("something (\d) (\d)")]
public Something Transform(int x, int y)
{
var something = new Something(x, y);
return something;
}
にはどうすればステップ方式でx
とy
パラメータを取り除くことができますか?
クール、ありがとう!実際には、括弧はSpecFlowによって使用されていて、それらを使って遊んでいると、トリックが実行されたように見えます。 '(something \ d \ d)'は単一の引数(1組のカッコしか見えません)へのマッピングとして解釈され、SpecFlowは変換その議論の価値を提供する。 –