严格监视 PHPUnit 中的方法参数

Strictly spy method argument in PHPUnit

我在测试中有这个间谍:
$subject->expects( $this->once() )->method( 'send_json_success' )->with( $expected );

$expected 是一个数组,该数组的其中一项应设置为 0.

Instead 当前设置为空字符串,这是我正在修复的问题的根源。 我想确保当项目设置为空字符串时测试失败,但我找不到如何告诉 PHPUnit 严格检查数组是否与 $expected.

完全相同

我不能使用 $this->same() 因为该方法没有 return 任何东西:我需要测试该方法是否使用正确的参数调用。

API documentation of the with() method, you can use a PHPUnit_Framework_Constraint 对象中所述。

一个PHPUnit_Framework_Constraint_IsIdentical object is used to implement the TestCase::assetSame() method.

所以,应该是:

<?php

use PHPUnit_Framework_Constraint_IsIdentical;

// Test case class...

$subject->expects($this->once())
        ->method('send_json_success')
        ->with(new PHPUnit_Framework_Constraint_IsIdentical($expected));