在Laravel Dusk强制演绎

时间:2017-10-19 17:10:05

标签: php laravel laravel-dusk

我们如何在测试中强制使用Dusk使用的语言环境?

使用FR语言环境设置启动浏览器,因此我的应用程序输出法语。

我需要一致地进行所有测试,无论开发人员在运行测试时设置的语言环境如何。

在中间件堆栈中,我有LocaleMiddleware负责根据请求标头选择区域设置(由浏览器自动发送)。

如果可能的话,我想避免在应用程序代码中使用特定于测试的代码(如下所示,在环境'测试'时强制使用语言环境)

1 个答案:

答案 0 :(得分:2)

使用setLocale()方法:

app()->setLocale('en');

或者:

App::setLocale('en');
  

您也可以使用setLocale方法

在运行时更改活动语言

https://laravel.com/docs/5.5/localization#introduction

<强>更新

您还可以在中间件中设置区域设置以进行测试环境:

if (env('APP_ENV') === 'testing') {
    app()->setLocale('en');

    return $next($request);
}