您当前的位置: 首页 > 慢生活 > 程序人生 网站首页程序人生
phpunit标注-testWith
发布时间:2021-10-08 17:18:59编辑:雪饮阅读()
testWith标注其实像是数据供给器,只不过是一个轻量级别的。
@testWith
除了实现一个方法并将之与 @dataProvider 联用外,你也可以用 @testWith 标注来定义数据集。
数据集由一个或多个元素组成。要定义具有多个元素的数据集,每个元素都要定义在单独一行中。数据集的每个元素都必须是以 JSON 格式定义的数组。
那么实例如:
MyTest.php:
<?php declare(strict_types=1);
use PHPUnit\Framework\TestCase;
final class MyTest extends TestCase
{
/**
* @testWith ["test", 4]
* ["longer-string", 13]
*/
public function testStringLength(string $input, int $expectedLength): void
{
$this->assertSame($expectedLength, strlen($input));
}
//以 JSON 格式表示的对象会转换为关联数组。
/**
* @testWith [{"day": "monday", "conditions": "sunny"}, ["day", "conditions"]]
*/
public function testArrayKeys(array $array, array $keys): void
{
var_dump(array_keys($array));
var_dump($keys);
$this->assertSame($keys, array_keys($array));
}
}
use PHPUnit\Framework\TestCase;
final class MyTest extends TestCase
{
/**
* @testWith ["test", 4]
* ["longer-string", 13]
*/
public function testStringLength(string $input, int $expectedLength): void
{
$this->assertSame($expectedLength, strlen($input));
}
//以 JSON 格式表示的对象会转换为关联数组。
/**
* @testWith [{"day": "monday", "conditions": "sunny"}, ["day", "conditions"]]
*/
public function testArrayKeys(array $array, array $keys): void
{
var_dump(array_keys($array));
var_dump($keys);
$this->assertSame($keys, array_keys($array));
}
}
运行结果:
C:\Users\Administrator>D:\phpstudy_pro\Extensions\php\php7.4.3nts\php.exe C:\Users\Administrator\PhpstormProjects\untitled\vendor\phpunit\phpunit\phpunit -c C:\Users\Administrator\PhpstormProjects\untitled\organizing\phpunit.xml C:\Users\Administrator\PhpstormProjects\untitled\organizing\tests\MyTest.php
PHPUnit 9.5.8 by Sebastian Bergmann and contributors.
... 3 / 3 (100%)C:\Users\Administrator\PhpstormProjects\untitled\organizing\tests\MyTest.php:19:
array(2) {
[0] =>
string(3) "day"
[1] =>
string(10) "conditions"
}
C:\Users\Administrator\PhpstormProjects\untitled\organizing\tests\MyTest.php:20:
array(2) {
[0] =>
string(3) "day"
[1] =>
string(10) "conditions"
}
Time: 00:00.008, Memory: 6.00 MB
OK (3 tests, 3 assertions)
关键字词:phpunit,testWith