Я использую данный сценарий для создания тестов:
1. Создается файл теста tests\Unit\Contacts\StoreContactTest.php
(по примеру ExampleTest)
2. Там метод теста формы
public function testRun()
{
// Создаем юзера
$user = factory(User::class)->create();
$user->roles()->attach(Role::ID__CUSTOMER);
// предупреждаем Вселенную, что он сейчас будет действовать
$this->actingAs($user);
// этот юзер отправляет форму
$response = $this->json('POST',
route('contact.store'),
['country_id' => Country::ID__RUSSIA,
'city'=>'Vjcrsds',
// любые поля
]);
// Ждем ответа
$response->assertStatus(200);
}
3. Запуск командой phpunit (выполняются все тесты)
Внимание - делюсь исключительно своим опытом. В тестирование не вникал, была цель сейчас все написать и забыть) Но у меня работает и ошибки показывает. Тестирую в основном store/update/delete. Удобно тем, что не нужно руками заполнять большие формы + тестируется весь сайт после рефакторинга, ошибки могут возникнуть в неожиданных местах. Под тесты лучше завести отдельную тест-базу т.к. данных получается много.