私は機能テストの学習曲線の急な部分にいます。代理店のステータスを変更する単純なフォーム([はい]-> [いいえ]、[いいえ]-> [はい])では、レコードの編集は失敗します。テストコードは次のとおりです。
$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がテーブルに表示される回数を数える簡単な方法があると思います。)
ありがとう。