我们如何在测试中强制 Dusk 使用的语言环境?
浏览器使用 FR 语言环境启动,因此我的应用程序正在输出法语。
无论开发人员在运行测试时在其系统上设置的区域设置如何,我都需要始终如一地进行所有测试。
在中间件堆栈中,我LocaleMiddleware
负责根据请求标头(由浏览器自动发送)选择区域设置。
如果可能的话,我想避免在应用程序代码中包含特定于测试的代码(如下所示,在环境“测试”时强制使用语言环境)
我们如何在测试中强制 Dusk 使用的语言环境?
浏览器使用 FR 语言环境启动,因此我的应用程序正在输出法语。
无论开发人员在运行测试时在其系统上设置的区域设置如何,我都需要始终如一地进行所有测试。
在中间件堆栈中,我LocaleMiddleware
负责根据请求标头(由浏览器自动发送)选择区域设置。
如果可能的话,我想避免在应用程序代码中包含特定于测试的代码(如下所示,在环境“测试”时强制使用语言环境)
使用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);
}