我需要测试看起来像这样的方法,但我的问题是:我应该如何进入这种方法,特别是当我不能"模拟" AbstractController,没有AbstractController的变量,它将无法正常工作
public function add(\Queue\Controller\AbstractQueueController $task)
{
//Logic of method
}
答案 0 :(得分:1)
你不需要嘲笑它。您已将其设置为参数,因此此测试与测试AbstractQueueController无关。
因此,例如,如果您的函数如下所示:
public function add(\Queue\Controller\AbstractQueueController $task)
{
$task->doSomething();
}
然后,在测试中,AbstractQueueController应该接收对doSomething方法()的调用,然后断言该结果。
答案 1 :(得分:0)
我做了类似的事情,我做了扩展课程
class addtest extends Queue\Controller\AbstractQueueController
{
public function task()
{
}
}
然后在我的QueeuServiceTest中扩展PHPUnit_framework_TestCase
我做了testmethod
public function testadd()
{
$this->queueService->add(new addtest);
}
它涵盖了代码,但我不知道这是好的做法