【问题标题】:assertEquals not comparing array values type?assertEquals 不比较数组值类型?
【发布时间】: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);
  • 但是相信我这不是好方法,写你的显式函数

标签: php phpunit assert


【解决方案1】:

assertSame 在这种情况下可以工作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-10-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-06
    相关资源
    最近更新 更多