Тестирование ReCaptcha с Laravel Dusk - PullRequest
0 голосов
/ 10 сентября 2018

У меня небольшая проблема с тестированием невидимой ReCaptcha на форме с помощью Laravel Dusk. Пакет, связанный с этой ситуацией, - Invisible Recaptcha от 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?

Спасибо

...