1

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

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

无论开发人员在运行测试时在其系统上设置的区域设置如何,我都需要始终如一地进行所有测试。

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

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

4

1 回答 1

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);
}
于 2017-10-19T17:13:38.477 回答