严格监视 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));
我在测试中有这个间谍:
$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));