在对 Laravel 项目进行单元测试时,不会注册宏,也不会触发应用程序事件。例如,需要以下文件app/start/globals.php
:
// app/helpers/nav.php
var_dump("nav.php loaded");
App::before(function($request) {
var_dump("app::before called");
HTML::macro('nav_link', function(..) { .. });
});
HTML::macro('nav_link', function(..) { .. });
只会打印第一个 var_dump。似乎App::before
没有调用该事件。此外,即使在事件之外,HTML::macro
调用也不会被注册(BadMethodCallException
尝试使用时会抛出 a)。这些在正常使用中工作正常。
测试用例相当简单:
<?php
class ExampleTest extends TestCase {
public function testBasicExample() {
$crawler = $this->client->request('GET', '/');
$this->assertTrue($this->client->getResponse()->isOk());
}
}