PHPUnit有一个非常有用的功能@dataProvider
,它允许测试一个方法的多个情况。 它还有另一个很棒的注释--@expectedException
,以确保应用在指定位置抛出正确的Exception
。
我目前正在针对多个边缘情况测试一个方法,并希望将这两个特性组合起来使用(非工作代码):
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'],
];
}
}
如何在使用@dataProvider
时将@expectedException
用作其中一种情况?
assertEquals()
不会这样做。 - jeroen