PHPUnitは非常に便利な機能を持っています。@dataProvider
は、メソッドの複数のケースをテストできます。また、アプリケーションが確定した場所に正しいException
をスローするように、別のクールな注釈 - @expectedException
があります。PHPUnitでデータプロバイダを使用して例外をテストするには?
私は現在、複数のエッジケースに対するメソッドをテストすることだし、このようなこれらの2つの機能(動作していないコード)を組み合わせたいと思います:
class TestMyClass
{
/**
* @dataProvider provideDataForFoo
*/
public function testFoo($paramBar, $paramBuz, $expected)
{
$myObject = new MyClass();
$this->assertEquals($expected, $myObject->foo($paramBar, $paramBuz));
}
public function provideDataForFoo()
{
return [
['expected lorem', 'bar lorem', 'buz lorem'],
['expected ipsum', 'bar ipsum', 'buz ipsum'],
['expected exception', 'bar invalid argument', 'buz invalid argument'],
];
}
}
が可能ですが/の一つとして@expectedException
を使用する方法場合、@dataProvider
を使用して?
例外をスローするセットが1つだけの場合は、そのセットに対して別のテストを追加する必要があります。そのテストでは、 'assertEquals()'が実際に例外をスローするコードを呼び出す必要があります。 – jeroen