Codeception,Laravel,验收测试

时间:2016-05-20 20:56:24

标签: laravel codeception

我正在使用Codeception Laravel 5开发验收测试。

我在文档中看到Laravel 5模块不应该用于验收测试。

现在,我想使用以下函数:Auth :: xxx,factory(User :: class) - > create()等...但是这些函数无法识别。

我可以在我的功能测试中使用它们,因为我包含了Laravel 5模块。

这是否意味着我无法在验收测试中使用它们,或者有一个技巧可以做到这一点???

2 个答案:

答案 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 InLog Out,则应断言。

在验收测试中,Eloquent是唯一可以逃脱的东西。