Тестирование

Edit page

В настоящее время разработка качественного программного обеспечения тесно связана с автоматизированным тестированием. Поэтому пакет содержит инструменты тестирования, которые помогут вам упростить его.

Для их использования достаточно добавить трейт ScreenTesting в свой тестовый класс, например:

namespace Tests\Feature;

use Orchid\Support\Testing\ScreenTesting;
use Tests\TestCase;

class ExampleTest extends TestCase
{
    use ScreenTesting;
    //...
}

После этого станет доступен новый метод получения данных экрана по имени маршрута:

public function testExampleScreen()
{
    $screen = $this->screen('platform.example');

    $screen->display()
        ->assertSee('Example screen');

    $screen
        ->method('showToast')
        ->assertSee('Hello, world! This is a toast message.');

    $screen
        ->method('showToast', [
            'toast' => 'Custom message'
        ])
        ->assertSee('Custom message');
}

Во многих случаях маршруты принимают параметры, напримерusers/{user}/edit, чтобы их передать можно использовать метод:

$screen = $this->screen('platform.systems.users.edit')
    ->parameters([
        'user' => 1,
    ]);

Скорее всего, ваши маршруты закрыты от гостей и доступны только авторизованным пользователям. В этом случае нужно вызвать метод actingAs передающий пользователя для входа в систему..

// Create a single App\Models\User instance...
$user = User::factory()->create();

$screen = $this->screen('platform.example')->actingAs($user);