【发布时间】:2018-11-26 18:58:27
【问题描述】:
我需要测试我编写的某些代码在多次调用另一个类的方法时会如何表现,其中一个调用将导致抛出异常。
我正在使用Mockery 模拟可能引发异常的类。
所以在我的例子中,该方法将被调用 3 次,我需要它在第二次抛出异常。
这是我的意图示例,但它不起作用。
$mock = \Mockery::mock();
$mock->shouldReceive('fetch')
->andReturnUsing(
function () {return true;},
function () use ($e) {throw new \Exception();},
function () {return false;}
);
Asserting that mock throws exception · Issue #308 · mockery/mockery 中的回复给我的印象是上述可能有效。
但是,在实践中,以这种方式抛出异常会导致 Mockery 捕获异常并抛出自己的 BadMethodCall 异常。
【问题讨论】:
标签: php unit-testing mockery