代码单元测试php.检查是否已使用某个参数调用函数



我试图找到简单问题的解决方案。我需要检查是否使用某个参数调用了函数。但我可以检查是否已调用函数并返回一些参数。我在代码文档中搜索了很长时间。有没有办法解决这个问题?

public function testSomething()
{
$conversation = $this->make('Class', [
'ask' => CodeceptionStubExpected::once('this string will be returned')
]);
$conversation->run();
}

我找到了一个解决方案。这是 PHPUnit 语法,但它有效!我们测试了方法ask((第一次被调用了2个参数('第一个参数','第二个参数'(。也许有人有更优雅的解决方案?

public function testSomething()
{
$conversation = $this->make('Class', [
'ask' => CodeceptionStubExpected::once()
]); 
$conversation->expects($this->exactly(1))
->method('ask')
->with('first param', 'second param');
$conversation->run();
}

使用codeception,我正在使用这样的东西:

$conversation = Stub::make(MyClass::class,
[
'ask' => StubExpected::exactly(1, function ($params)  {
$this->assertEquals('yourFirstParam', $params[0]);
})
]
);

最新更新