我在测试中有这个间谍:
$subject->expects( $this->once() )->method( 'send_json_success' )->with( $expected );
$expected
是一个数组,此数组的其中一项应设置为0
。
相反,当前设置为空字符串,这是我正在修复的问题的根源。
当项目设置为空字符串时,我想确保测试失败,但是我无法告诉PHPUnit如何严格检查数组是否与$expected
完全相同。
我无法使用$this->same()
,因为该方法不返回任何内容:我需要测试使用正确参数调用方法。
答案 0 :(得分:2)
如API documentation of the with() method中所述,您可以使用PHPUnit_Framework_Constraint对象。
PHPUnit_Framework_Constraint_IsIdentical对象用于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));