assertEqualsCanonicalizing()函数是PHPUnit中的内置函数,用于断言期望变量和实际变量是否相等。在实际比较之前,将对两个数组进行排序和比较之前的标准均值。如果期望值和实际值相同,则该断言将返回true,否则返回false。如果为真,则通过断言的测试用例,否则测试用例失败。
用法:
assertEqualsCanonicalizing( mixed $expected, mixed $actual, string $message = '' )
参数:该函数接受三个参数,如上面的语法所示。参数说明如下:
$expected:该参数是一个混合变量,表示期望值。
$actual:此参数是一个混合变量,表示要与期望值进行比较的实际值。
$message:此参数采用字符串值。当测试用例失败时,此字符串消息将显示为错误消息。
以下程序说明了PHPUnit中的assertEqualsCanonicalizing()函数:
程序1:
use PHPUnit\Framework\TestCase;
class GeeksPhpunitTestCase extends TestCase
{
public function testNegativeTestcaseForAssertEqualsCanonicalizing()
{
$expected = array(1, 2, 3, 4);
$actual = array(2, 1, 2, 4);
// Assert function to test whether expected
// and actual are canonically equal or not.
$this->assertEqualsCanonicalizing(
$expected, $actual,
"expected and actual are not canonically equals"
);
}
}
?>
输出:
PHPUnit 8.2.5 by Sebastian Bergmann and contributors.
F 1 / 1 (100%)
Time:65 ms, Memory:10.00 MB
There was 1 failure:
1) GeeksPhpunitTestCase::testNegativeTestcaseForAssertEqualsCanonicalizing
expected and actual are not canonically equals
Failed asserting that two arrays are equal.
--- Expected
+++ Actual
@@ @@
Array (
0 => 1
1 => 2
- 2 => 3
+ 2 => 2
3 => 4
)
/home/shivam/Documents/geeks/phpunit/abc.php:13
FAILURES!
Tests:1, Assertions:1, Failures:1.
程序2:
use PHPUnit\Framework\TestCase;
class GeeksPhpunitTestCase extends TestCase
{
public function testPositiveTestcaseForAssertEqualsCanonicalizing()
{
$expected = array(1, 2, 3, 4);
$actual = array(2, 1, 3, 4);
// Assert function to test whether expected
// and actual are canonically equal or not.
$this->assertEqualsCanonicalizing(
$expected, $actual,
"expected and actual are not canonically equals"
);
}
}
?>
输出:
PHPUnit 8.2.5 by Sebastian Bergmann and contributors.
. 1 / 1 (100%)
Time:67 ms, Memory:10.00 MB
OK (1 test, 1 assertion)
注意:要使用phpunit运行测试用例,请遵循此处的步骤。另外,phpunit 7及更高版本支持assertEqualsCanonicalizing()。