0

すべてのステップを実行する前に実行するフックを作成しています。フック関数は基本的に、ステップに与えられた引数を操作します。

これが私が使用しているコードです(最後の2行はテスト用です):

/** @BeforeStep */
public function beforeStep($event) {
    $step_node = $event->getStep();
    $args = $step_node->getArguments();
    print_r($args);
    die();
}
  • $step_nodeのインスタンスですStepNode
  • $argsそのステップに関連する引数の配列であると想定されています。

これをテストする特定のステップでは、引数の配列は常に空です。また、フックを使用して引数を出力しようとしましたがAfterStep、配列はまだ空です。

behatがどのように議論をつかみ、ステップを処理するかについて何かが欠けていますか?

4

1 に答える 1

1

getArguments() は Behat\Gherkin\Node\TableNode の配列を返し、テーブルの行にアクセスできるようにします。例えば ​​:

Given the following users:
  | name          | followers |
  | everzet       | 147       |
  | avalanche123  | 142       |
  | kriswallsmith | 274       |
  | fabpot        | 962       |

step_node.getText() から引数を解析してみることができますが、おそらく変換を使用する方がよいでしょう。これにより、ステップが実行される前に引数を処理できます。

Behat Mink のドキュメントからの一例:

/**
 * @Transform /^user (.*)$/
 */
public function castUsernameToUser($username)
{
    return new User($username);
}
于 2013-03-25T21:37:28.130 に答える