我正在使用Codeception Laravel 5开发验收测试。
我在文档中看到Laravel 5模块不应该用于验收测试。
现在,我想使用以下函数:Auth :: xxx,factory(User :: class) - > create()等...但是这些函数无法识别。
我可以在我的功能测试中使用它们,因为我包含了Laravel 5模块。
这是否意味着我无法在验收测试中使用它们,或者有一个技巧可以做到这一点???
答案 0 :(得分:2)
文档清楚地概述了您的问题的答案:
您不应将此模块用于验收测试。如果要在验收测试中使用Laravel功能,例如进行测试设置,可以通过将以下代码行添加到套件_bootstrap.php文件中来初始化Laravel功能:
这就是你要添加的内容:
require 'bootstrap/autoload.php';
$app = require 'bootstrap/app.php';
$app->loadEnvironmentFrom('.env.testing');
$app->instance('request', new \Illuminate\Http\Request);
$app->make('Illuminate\Contracts\Http\Kernel')->bootstrap();
这意味着您can
在验收测试中使用了Laravel功能,但是,您无法使用Codeception Laravel 5
模块进行验收测试。
希望这可以解决问题。
答案 1 :(得分:1)
在验收测试中,您有两个实例,您的(代码)和应用程序(网站)。
这意味着您在实例中使用的任何laravel
都无法在应用的实例中使用。
此处Auth::check()
没有意义,因为验收测试必须与应用程序分离。例如,如果您在渲染的html中看到Log In
或Log Out
,则应断言。
在验收测试中,Eloquent是唯一可以逃脱的东西。