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

问题描述 投票:0回答:1

我需要测试控制器方法设置的变量,但我得到一个空值

这是一些代码:

控制器功能:

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

谢谢

cakephp
1个回答
0
投票

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

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

$controller->setLastDay(1);

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

$this->assertEquals(99, $lastDay);
© www.soinside.com 2019 - 2024. All rights reserved.