我正在为使用PHPUnit的方法编写单元测试.我正在测试的方法在同一个对象上调用同一个方法3次,但使用不同的参数集.我的问题类似于这里和这里提出的问题
其他帖子中提出的问题与只采用一个论点的模拟方法有关.
但是,我的方法需要多个参数,我需要这样的东西:
$mock->expects($this->exactly(3))
->method('MyMockedMethod')
->with($this->logicalOr($this->equalTo($arg1, $arg2, arg3....argNb),
$this->equalTo($arg1b, $arg2b, arg3b....argNb),
$this->equalTo($arg1c, $arg2c, arg3c....argNc)
))
Run Code Online (Sandbox Code Playgroud)
此代码不起作用,因为equalTo()只验证一个参数.给它多个参数会引发异常:
PHPUnit_Framework_Constraint_IsEqual :: __ construct()的参数#2必须是数字
有没有办法对logicalOr具有多个参数的方法进行模拟?
提前致谢.
考虑下面的go代码:
fruits := [4]string{"apple", "orange", "mango"}
tasty_fruits := fruits[1:3]
fmt.Println(len(tasty_fruits))
fmt.Println(cap(tasty_fruits))
fmt.Println(tasty_fruits)
Run Code Online (Sandbox Code Playgroud)
.OUPUTS:
2
3
[orange mango]
Run Code Online (Sandbox Code Playgroud)
我不明白为什么Tasty_fruits 3的容量,直觉上我会期望它是2,因为这是切片的长度?
如果tasty_fruits的容量为3,为什么:
tasty_fruits[2] = "nectarine"
Run Code Online (Sandbox Code Playgroud)
造成:
panic: runtime error: index out of range
Run Code Online (Sandbox Code Playgroud)