在cakephp 4中,测试函数,viewVariable返回null

o7jaxewo  于 2023-10-20  发布在  PHP
关注(0)|答案(1)|浏览(113)

我需要测试由控制器方法设置的变量,但我得到一个空值
下面是一些代码:
控制器功能:

public function setLastDay()
{
    $this->set('lastDay', 99);
}

测试功能:

public function testSetLastDay()
{

    $controller = new PlansController();
    $controller->initialize();

    $controller->setLastDay();

    $lastDay = $this->viewVariable('lastDay');
    
    $this->assertEquals(99, $lastDay);
}

结果是:

1) App\Test\TestCase\Controller\PlansControllerTest::testSetLastDay
Failed asserting that null matches expected 99.

使用debugkit,我可以看到lastDay已经设置并且在视图中可用,但是我如何构建测试来检查变量是否正确呢?
我使用cakephp 4.4.17
谢谢

92vpleto

92vpleto1#

我通过这个测试找到了一个解决方案:

$controller = new PlansController();
$controller->initialize();

$controller->setLastDay(1);

$vb = $controller->viewBuilder();
$lastDay = $vb->getVar('lastDay');

$this->assertEquals(99, $lastDay);

相关问题