Laravel Dusk предоставляет мощный и удобный API для тестирования браузерного взаимодействия в вашем Laravel-приложении. Он использует ChromeDriver для автоматизации браузера и позволяет вам написать тесты, которые могут взаимодействовать с вашим приложением так, как это делает пользователь. В этом введении мы рассмотрим, как начать работу с Laravel Dusk и приведем примеры тестирования браузерного взаимодействия.

1. Установка Laravel Dusk

Для начала убедитесь, что у вас установлен Laravel и Composer. Создайте новый проект Laravel, если у вас его еще нет:

composer create-project --prefer-dist laravel/laravel dusk-example

Перейдите в директорию проекта:

cd dusk-example

Установите Laravel Dusk через Composer:

composer require --dev laravel/dusk

2. Установка Dusk

После установки Dusk, выполните команду dusk:install для создания базового тестового класса и драйвера браузера:

php artisan dusk:install

Эта команда создаст директорию tests/Browser и файл DuskTestCase.php, который будет содержать базовый класс для ваших тестов Dusk.

3. Написание теста

Создайте тест Dusk, используя команду make:dusk:

php artisan dusk:make LoginTest

Это создаст файл LoginTest.php в директории tests/Browser. В этом файле вы можете написать тест, который проверяет, что пользователь может войти в систему.

Вот пример теста Dusk:

<?php

namespace Tests\Browser;

use Laravel\Dusk\Browser;
use Tests\DuskTestCase;

class LoginTest extends DuskTestCase
{
    /**
     * A Dusk test example.
     *
     * @return void
     */
    public function testUserCanLogin()
    {
        $this->browse(function (Browser $browser) {
            $browser->visit('/login')
                    ->type('email', 'user@example.com')
                    ->type('password', 'password')
                    ->press('Login')
                    ->assertPathIs('/home');
        });
    }
}

4. Запуск теста

Чтобы запустить тесты Dusk, используйте команду php artisan dusk:

php artisan dusk

5. Дополнительные возможности Dusk

Laravel Dusk предлагает множество возможностей для тестирования браузерного взаимодействия, включая:

  • Взаимодействие с элементами формы: Вы можете взаимодействовать с элементами формы, такими как текстовые поля, чекбоксы и радиокнопки.
  • Выбор элементов из выпадающего списка: Dusk позволяет выбирать элементы из выпадающего списка.
  • Взаимодействие с JavaScript: Вы можете взаимодействовать с JavaScript, например, кликая на элементы, которые появляются после выполнения JavaScript-кода.
  • Проверка содержимого страницы: Dusk позволяет проверять содержимое страницы, например, наличие определенного текста или элементов.

Заключение

Laravel Dusk предоставляет мощный и удобный способ тестирования браузерного взаимодействия в вашем Laravel-приложении. Он позволяет вам написать тесты, которые могут взаимодействовать с вашим приложением так, как это делает пользователь, обеспечивая высокое качество вашего приложения.