我的插件只有一个控制器只有一个操作:
class AssetsController extends Controller
{
/**
* Renders an asset
* @param string $filename Asset filename
* @param string $type Asset type (`css` or `js`)
* @return Cake\Network\Response|null
*/
public function asset($filename, $type)
{
$this->response->type($type);
$this->response->file(ASSETS . DS . $filename);
return $this->response;
}
}
这只发送一个资产文件。
现在我正在为不存在的资产文件编写测试。
public function testAssetNoExistingFile()
{
$this->get('/assets/css/noexistingfile.css');
$this->assertResponseFailure();
}
但它要求输入错误模板:
1) Assets\Test\TestCase\Controller\AssetsControllerTest::testAssetNoExistingFile
Cake\View\Exception\MissingTemplateException: Template file "Error/error500.ctp" is missing.
该插件没有模板,也没有带模板的应用。所以我希望它使用CakePHP核心的模板,但这不会发生。我哪里错了?
答案 0 :(得分:1)
核心中没有<div id="dropdown-container">
<div id="index-tab" onclick="toggleMenu()"><a href="#">1</a>
</div>
<ul id="dropdown">
<li><a href="#"><span id="current-browse">1</span></a>
<ul class="dropdown-items">
<li class="dropdown-item"><a href="#">2</a>
</li>
<li class="dropdown-item"><a href="#">3</a>
</li>
</ul>
</li>
</ul>
</div>
模板,这是应用程序必须提供的模板。
在测试插件时,您应该注册一个合适的测试应用程序环境,并为其提供必要的模板。如果你看看CakePHP核心和插件是如何做到的,他们会在Error/error500.ctp
文件夹中创建/注册一个虚拟应用程序,然后可以放置这些模板文件。
另见