PHPUnit中严格间谍方法参数

时间:2017-02-06 15:39:30

标签: phpunit spy

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

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

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

我无法使用$this->same(),因为该方法不返回任何内容:我需要测试使用正确参数调用方法。

1 个答案:

答案 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));