【发布时间】:2016-02-14 07:13:24
【问题描述】:
这是一个 PHPUnit 测试:
class EqualsTest extends PHPUnit_Framework_TestCase
{
public function testSuccess()
{
$this->assertEquals(array('01', 'a', 'b'), array(1, 'a', 'b'));
}
}
'01' 是一个字符串,1 是一个整数,但测试没有失败! assertEquals 不比较类型...如何解决这个问题?
【问题讨论】:
-
我认为 assertEquals() 仅适用于字符串和数字等原语
-
它也适用于数组...
-
assertEquals 方法有一个未记录的参数 $canonicalize。如果您使用 $canonicalize = true,则数组将由 PHPUnit 数组比较器本身进行排序。 $this->assertEquals($array1, $array2, "\$canonicalize = true", $delta = 0.0, $maxDepth = 10, $canonicalize = true);
-
但是相信我这不是好方法,写你的显式函数