我有一个计算正方形面积的函数,现在想要进行测试。
这个正方形函数如下:
public function squaring($number)
{
if ($number == 0) {
throw new InvalidDataException("0 can't be squared");
}
return $number * $number;
}
测试的第一步是检查是否正确:
public function testIfSquaringIsCorrect()
{
$number = 2;
$result = $this->modelPractice->squaring($number);
$this->assertEquals(4, $result);
}
最后一步是检查是否出现异常。
我该如何做呢?
我尝试了以下方式,但它没有起作用:
public function testSquaringLaunchInvalidDataException()
{
$number = 0;
$result = $this->modelPractice->squaring($number);
$expected = $this->exceptException(InvalidDataException::class);
$this->assertEquals($expected, $result);
}
谢谢!
expectException()
的名称。它必须在运行抛出异常的代码($this->modelPractice->squaring($number);)之前被调用。在这之后,测试代码甚至都不会运行,因为被测试的代码已经抛出了异常,却没有被任何人捕获到。 - axiac