私は無効な値の配列をループするPHPUnitテストを行い、それぞれが関数によって正しく拒否されることを宣言します。ループ内でどのアサーションが失敗したかを調べる方法は?
たとえば、入力が文字列の場合のみvalidateInput
はtrueを返し、そうでない場合はfalseを返します。それはループでありますので、すべての値に対して同じである -
public function testValidateInput()
{
$obj = new MyClass();
$data = [
null,
42,
21.21,
-24,
-12.12,
false,
array('key' => 'value'),
(object) 'value'
];
foreach ($data as $item){
$this->assertSame(false, $obj->validateInput($item));
}
}
テストは、アサーションに失敗
は、私が唯一の行番号を取得します。1) MyClassTest::testValidateInput Failed asserting that true is identical to false. /home/jeff/MyClass/tests/MyClassTest.php:24
どのように私は、アサーションを失敗した値を決定することができますか?
を使用し、それが正しいカスタムメッセージ、として最後のパラメータを渡すことが可能ですか?すると、 '$ this-> assertSame(false、$ obj-> validateInput($ item)、 'テストに失敗しました。$ item);'というメッセージが表示され、失敗した値がスクリーンに表示されます。 –