【发布时间】:2017-03-12 14:42:16
【问题描述】:
我实际上是在尝试理解 PHPUNIT 和使用 PHP 进行单元测试。
我有一个经典的划分方法。
public function divide($firstNumber, $secondNumber){
if( !is_numeric($firstNumber) || !is_numeric($secondNumber) ){
throw new Exception("Not a number") ;
}
if( $secondNumber == 0 ) throw new Exception("Can't divide by zero") ;
return $firstNumber/$secondNumber ;
}
如您所见,它可以返回数字或异常。 这是我使用的 testDivide 代码。
/**
* @dataProvider diviserDateProvider
* @covers MyTools::diviser
*/
public function testDivide($firstNumber, $secondNumber, $expected) {
$myToolsClasse = new MyTools();
$this->assertEquals($expected, $myToolsClasse->diviser($firstNumber, $secondNumber));
}
public function diviserDateProvider() {
return array(
array(1, 0, new Exception("Can't divide by zero")),
array(1, 2, 0.5),
array("", "", 0.5)
);
}
如您所见,有一个具有多个测试值的 DataProvider。 问题是我必须排除/断言一个例外,这是最好的方法吗?
我应该在我的 testDivide 代码中使用 @exceptException 并使用 try catch 吗? 谢谢你的帮助 祝你今天过得愉快!
【问题讨论】:
标签: php unit-testing testing phpunit