我正在使用Mockery来测试创建日历事件的类。它将开始日期和结束日期的时间戳传递给我的EventRepository的create()
方法。还有其他数据作为参数包含在内,但我只关心时间戳对于此测试是否正确。
此代码适用于测试一个事件的创建:
$this->repo->shouldReceive('create')->once()
->with(Mockery::contains(1466460000, 1466467200));
然而,当我将模拟扩展为被称为两次的create()
方法时,它会失败。
$this->repo->shouldReceive('create')->twice()
->with(Mockery::contains(1466460000, 1466467200),
Mockery::contains(1466632800, 1466640000));
Mockery是否使用语法->with(args1, args2)
来指定多个调用同一函数的参数?
答案 0 :(得分:1)
当被测方法有多个参数时,使用带有多个参数的语法。


对于您的用例,您需要执行以下操作:


 $ this-&gt ; repo-> shouldReceive( '创建') - >在()
 - > with(Mockery :: contains(1466460000,1466467200));
 $ this-> repo-> shouldReceive('create') - > once()
 - > with(Mockery :: contains(1466632800,1466640000));