php 单元测试中处理异常的方法有两种:1. 使用 @expectedexception 断言,让 php 知道您期望函数抛出特定的异常;2. 使用 try-catch 块,在被测代码中捕获异常并在断言中验证其类型。
如何于 PHP 单元测试中处理异常
在单元测试中处理异常至关重要,因为它可以验证您代码异常处理逻辑的正确性。以下是处理异常的步骤:
1. 使用 @expectedException 断言
立即学习“PHP免费学习笔记(深入)”;
该断言让 PHP 知道您期望函数抛出特定的异常。用法如下:
use PHPUnitFrameworkTestCase;
class ExampleTest extends TestCase
{
public function testDivisionByZero()
{
$this->expectException(ArithmeticError::class);
// 要测试的函数
divide(10, 0);
}
}
2. 使用 try-catch 块
try-catch 块允许您在被测代码中捕获异常。用法如下:
use PHPUnitFrameworkTestCase;
use Exception;
class ExampleTest extends TestCase
{
public function testDivisionByZero()
{
try {
// 要测试的函数
divide(10, 0);
} catch (Exception $e) {
$this->assertInstanceOf(ArithmeticError::class, $e);
}
}
}
实战案例:
考虑一个名为 divide() 的函数,它根据输入值执行除法并处理除以零的情况。
测试代码:
use PHPUnitFrameworkTestCase;
use Exception;
class DivideTest extends TestCase
{
public function testDivision()
{
$this->assertEquals(10, divide(20, 2));
$this->expectException(ArithmeticError::class);
divide(10, 0);
$this->assertInstanceOf(ArithmeticError::class, divide(0, 0));
}
}
Tips:
- 使用特定的异常类进行断言,以确保抛出的异常类型正确。
- 捕获异常以验证错误消息或其他处理逻辑。
- 测试各种输入值,包括例外情况,以彻底测试函数的异常处理。