【发布时间】:2014-12-04 13:39:03
【问题描述】:
我开始使用Laravel 4.2、PHPUnit 和Mockery 编写测试。
如何断言我正在测试的控制器调用/运行了模拟外观?
例如,我对Queue 有以下嘲讽。我的控制器没有返回任何与Queue::push() 相关的信息,那么有没有办法可以断言它触发了Queue::push()?
Queue::shouldReceive('push')->once();
Queue::shouldReceive('connected')->once();
如果我在控制器中注释掉 Queue::push(),Queue::shouldReceive 会引发异常:
Mockery\Exception\InvalidCountException:来自 Mockery_0_Illuminate_Queue_QueueManager 的方法 push() 应该准确调用 1 次,但调用了 0 次。
断言 Mock Facade 运行的唯一方法是执行以下操作吗?
$queuepushran = false;
try {
Queue::shouldReceive('push')->once();
Queue::shouldReceive('connected')->once();
$queuepushran = true;
} catch (\Mockery\Exception\InvalidCountException $e) {
//Queue threw an exception
$queuepushran = false;
}
$this->assertTrue($queuepushran);
【问题讨论】:
标签: php unit-testing laravel phpunit mockery