Тестирование ReCaptcha с Laravel Dusk

У меня небольшая проблема с тестированием невидимой ReCaptcha на форме с помощью Laravel Dusk. Пакет, связанный с этой ситуацией Невидимая рекапча от Albertcht

У меня есть этот метод внутри CreatesApplication.php файл в /tests

protected function withoutRecaptcha() : void
{
InvisibleReCaptcha::shouldReceive("verifyRequest")
->andReturnTrue();

InvisibleReCaptcha::shouldReceive("verifyResponse")
->once()
->andReturnTrue();
}

Это хорошо работает для теста функций, потому что мне нужно только нажать API, и я могу игнорировать g-recaptcha-response вход из почтового запроса.

Но если я хочу протестировать саму форму, используя систему тестирования браузера, такую ​​как Laravel Dusk, конечно, этого недостаточно.

Мой текущий метод сумерек следующий.

 public function a_guest_can_fill_the_registration_form()
{
$this->withoutRecaptcha();

$this->browse(function (Browser $browser) {
$browser->maximize()
->visit(new Register())
->assertPresent("input[name=g-recaptcha-response]")
->fillFormWithRandomData()
->submitForm()
->waitForReload()
->assertVisible(".alert.alert-success");
});
}

Здесь все просто, я вызываю форму регистрации, заполняю данные, отправляю их и проверяю, нет ли предупреждения. В настоящее время это не работает, и я получаю эту ошибку:

There was 1 failure:

1) Tests\Browser\RegisterTest::a_guest_can_fill_the_registration_form
Element [body input[name=g-recaptcha-response]] is not present.
Failed asserting that false is true.

/app/vendor/laravel/dusk/src/Concerns/MakesAssertions.php:806
/app/vendor/laravel/dusk/src/Concerns/ProvidesBrowser.php:67

Таким образом, проблема ясна: во время теста вход ReCaptcha не отображается, поэтому невозможно поразить его или даже не настоящие Это

Есть ли способ визуализации поддельной ReCaptcha, чтобы он работал с Laravel Dusk?

Спасибо

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]