您当前的位置: 首页 > 慢生活 > 程序人生 网站首页程序人生
phpunit数据供给器利用数据键名更好的排错
发布时间:2021-09-13 11:39:14编辑:雪饮阅读()
上篇有说到数据共给器默认的数字索引可以利用来排查错误,进行错误定位。
那么如果是关联数组,也就是说拥有自定义键名而不是默认的索引数组的情况下。则可以使得错误定位更明显。
当使用到大量数据集时,最好逐个用字符串键名对其命名,避免用默认的数字键名。这样输出信息会更加详细些,其中将包含打断测试的数据集所对应的名称。
DataTest.php:
<?php declare(strict_types=1);
use PHPUnit\Framework\TestCase;
final class DataTest extends TestCase
{
/**
* @dataProvider additionProvider
*/
public function testAdd(int $a, int $b, int $expected): void
{
$this->assertSame($expected, $a + $b);
}
public function additionProvider(): array
{
return [
'adding zeros' => [0, 0, 0],
'zero plus one' => [0, 1, 1],
'one plus zero' => [1, 0, 1],
'one plus one' => [1, 1, 3]
];
}
}
use PHPUnit\Framework\TestCase;
final class DataTest extends TestCase
{
/**
* @dataProvider additionProvider
*/
public function testAdd(int $a, int $b, int $expected): void
{
$this->assertSame($expected, $a + $b);
}
public function additionProvider(): array
{
return [
'adding zeros' => [0, 0, 0],
'zero plus one' => [0, 1, 1],
'one plus zero' => [1, 0, 1],
'one plus one' => [1, 1, 3]
];
}
}
运行结果:
C:\Users\Administrator>D:\phpstudy_pro\Extensions\php\php7.3.4nts\php.exe D:\phpstudy_pro\Extensions\php\php7.3.4nts\phpunit-9.5.8.phar C:\Users\Administrator\PhpstormProjects\untitled\DataTest.php
PHPUnit 9.5.8 by Sebastian Bergmann and contributors.
...F 4 / 4 (100%)
Time: 00:00.005, Memory: 20.00 MB
There was 1 failure:
1) DataTest::testAdd with data set "one plus one" (1, 1, 3)
Failed asserting that 2 is identical to 3.
C:\Users\Administrator\PhpstormProjects\untitled\DataTest.php:11
FAILURES!
Tests: 4, Assertions: 4, Failures: 1.
这里直接定位到了引发错误的数据出现位置在键名为“one plus one”的元素(数组/数据)上的。
关键字词:phpunit,数据供给器,数据键名,数据,键名