0

私は機能テストの学習曲線の急な部分にいます。代理店のステータスを変更する単純なフォーム([はい]-> [いいえ]、[いいえ]-> [はい])では、レコードの編集は失敗します。テストコードは次のとおりです。

$crawler = $client->request('GET', '/agency/manage');
//read agency table
$nodeValues = $crawler->filter('td')->each(function ($node, $i) {
    return $node->nodeValue;
});

//$initial = number of Active=Yes agencies
$initial = 0;
foreach ($nodeValues as $node) {
    if ($node == 'Yes') {
        $initial ++;
    }
}
//edit agency to Active=No
$crawler = $client->request('GET', '/agency/1/edit');
$form = $crawler->selectButton('Edit')->form();
$form['agency[active]'] = 'No';
$crawler = $client->submit($form);

$crawler = $client->request('GET', '/agency/manage');

$nodeValues = $crawler->filter('td')->each(function ($node, $i) {
    return $node->nodeValue;
});

//$final = number of Active=Yes agencies
$final = 0;
foreach ($nodeValues as $node) {
    if ($node == 'Yes') {
        $final ++;
    }
}

$this->assertTrue($initial > $final);

私のテストケースでは、初期値と最終値の両方が2です。エージェンシーを適切に追加するテストを作成したので、完全に軌道に乗っていないことがわかります。(また、Yesがテーブルに表示される回数を数える簡単な方法があると思います。)

ありがとう。

4

1 に答える 1

0

答え:編集アクションのルーティングを修正してください!テストに合格しました。

于 2013-03-14T01:25:26.990 に答える