Laravel 5.7.28
laravel / dusk 5.0.2
PHPUnit 7.5.6
我有一个检查登录超时的测试:
public function testLoginTimeout()
{
$this->browse(function (Browser $browser) {
$browser->visitRoute('login');
for ($i = 0; $i < 6; $i++)
$browser
->type('name', 'invalidname')
->type('password', 'invalidpass')
->press('Login');
$seconds = app(RateLimiter::class)->availableIn(Str::lower('invalidname') . '|' . request()->ip());
$browser->assertSee(__('auth.throttle', ['seconds' => $seconds]));
});
}
有时(每3次尝试1次测试)由于超时不匹配而导致测试失败:预期
“登录尝试过多。请在 52 秒内重试。”
“登录尝试过多。请在 51 秒内重试。”
但实际是
“登录尝试过多。请在 53 秒内重试。”
我该如何解决?
我正在正确使用$seconds
,就像在framework core中检索它们一样。
P。 S.在这个测试班上,我还有其他一些测试方法。我试图删除它们,让testLoginTimeout
独自一人。没有帮助。