使用silex和phpunit在控制器中调用函数调用

时间:2016-06-22 15:45:01

标签: php unit-testing phpunit silex

我正在使用Silex和PHPUnit构建一个PHP应用程序进行单元测试。

在我的控制器中,我有以下代码:

 public  function indexAction(Application $app) {
    return $app['twig']->render('admin/pages/index.html.twig', array(
        'pages' => $this->pageDao->getAllPage()
    ));
}

在我的单元测试中,我想检查 getAllPage 被调用。

我写过以下单元测试:

 public function testIndexAction()
{
    $client = $this->createClient();
    $stub   = $this->getMockBuilder('Lsi\Dao\PageDao')
        ->setMethods(array('getAllPage'))
        ->setConstructorArgs(array(DatabaseFactory::getDatabaseForTesting()))
        ->getMock();

    $crawler = $client->request('GET', '/private.pages/');

    $this->assertEquals($client->getResponse()->isOk(), true);

    $stub->expects($this->once())->method('getAllPage');

}

控制器路由返回内容但我在方法期望上出错:

方法名称的期望失败等于1次调用时的期望值。 预计方法被调用1次,实际上被称为0次。

感谢您的帮助。

0 个答案:

没有答案