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

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

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

  1. public function setLastDay()
  2. {
  3. $this->set('lastDay', 99);
  4. }

测试功能:

  1. public function testSetLastDay()
  2. {
  3. $controller = new PlansController();
  4. $controller->initialize();
  5. $controller->setLastDay();
  6. $lastDay = $this->viewVariable('lastDay');
  7. $this->assertEquals(99, $lastDay);
  8. }

结果是:

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

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

92vpleto

92vpleto1#

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

  1. $controller = new PlansController();
  2. $controller->initialize();
  3. $controller->setLastDay(1);
  4. $vb = $controller->viewBuilder();
  5. $lastDay = $vb->getVar('lastDay');
  6. $this->assertEquals(99, $lastDay);

相关问题