我正在尝试使用此Test类来测试控制器,
<?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());
}
}
和治具。
SitePage:
page1:
Title: Page One
CanViewType: true
但是“ $ this-> get('page-one /');”返回404页面。
答案 0 :(得分:2)
页面是版本控制的,并且该页面不会在您要求的时候发布,因此功能测试将模拟前端Web请求,默认情况下该请求是从实时(发布)阶段提供的。
您可以通过在请求URL上附加?stage=Stage
或在功能测试中使用protected static $use_draft_site = true
(在4.2中弃用)来使用草稿网站。
请注意,FunctionalTest不会登录用户,因此您可能还需要以某种级别的权限登录,即$this->logInWithPermission('ADMIN')