Phpunit 银条4:功能测试;获得;方法返回404状态,尽管页面在那里。
我想用这个测试类测试一个控制器Phpunit 银条4:功能测试;获得;方法返回404状态,尽管页面在那里。,phpunit,silverstripe,silverstripe-4,Phpunit,Silverstripe,Silverstripe 4,我想用这个测试类测试一个控制器 <?php use SilverStripe\Dev\FunctionalTest; class SitePageControllerTest extends FunctionalTest { protected static $fixture_file = 'site/tests/fixturesSitePage.yml'; public function testViewSitePage() { $obj =
<?php
use SilverStripe\Dev\FunctionalTest;
class SitePageControllerTest extends FunctionalTest
{
protected static $fixture_file = 'site/tests/fixturesSitePage.yml';
public function testViewSitePage()
{
$obj = $this->objFromFixture('SitePage', 'page1');
$page = $this->get('page-one/');
$this->assertEquals(200, $page->getStatusCode());
}
}
但是“$this->get('page-one/”);”返回404页 页面是版本化的,并且此页面不会在您请求的位置发布,因此功能测试模拟前端web请求,默认情况下,该请求是从live(published)阶段提供的 您可以通过将
?stage=stage
附加到请求URL,或在功能测试中使用受保护的静态$use\u draft\u site=true
来使用草稿站点(这在4.2中被弃用)
请注意,FunctionalTest不会让用户登录,因此您可能还需要使用某种级别的权限登录,即$this->logInWithPermission('ADMIN')
SitePage:
page1:
Title: Page One
CanViewType: true