assertHasNoErrors
Метод assertHasNoErrors класса Testable
проверяет, что в компоненте Livewire отсутствуют ошибки
валидации. Он используется в тестах для подтверждения
того, что переданные данные прошли валидацию успешно.
Метод может принимать массив ключей, по которым нужно
проверить отсутствие ошибок.
Синтаксис
$component->assertHasNoErrors($keys = []);
Метод возвращает экземпляр Testable для цепочки вызовов.
Пример
Давайте проверим, что после успешного обновления свойства
$num ошибок валидации нет:
<?php
namespace AppLivewire;
use LivewireComponent;
class Counter extends Component
{
public $num = 0;
protected $rules = [
'num' => 'required|integer|min:0',
];
public function increment()
{
$this->num++;
$this->validate();
}
public function render()
{
return view('livewire.counter');
}
}
?>
<?php
namespace TestsUnit;
use TestsTestCase;
use LivewireLivewire;
use AppLivewireCounter;
class CounterTest extends TestCase
{
public function test_increment_without_errors()
{
$component = Livewire::test(Counter::class);
$component->call('increment');
$component->assertHasNoErrors();
}
}
?>
Пример
Проверим отсутствие ошибок по конкретному полю:
<?php
namespace AppLivewire;
use LivewireComponent;
class UserForm extends Component
{
public $name = '';
protected $rules = [
'name' => 'required|min:3',
];
public function save()
{
$this->validate();
}
public function render()
{
return view('livewire.user-form');
}
}
?>
<?php
namespace TestsUnit;
use TestsTestCase;
use LivewireLivewire;
use AppLivewireUserForm;
class UserFormTest extends TestCase
{
public function test_valid_name_has_no_errors()
{
$component = Livewire::test(UserForm::class)
->set('name', 'John');
$component->call('save');
$component->assertHasNoErrors(['name']);
}
}
?>
Результат выполнения теста:
OK (1 test, 3 assertions)
Пример
Проверим отсутствие ошибок после успешной валидации нескольких полей:
<?php
namespace AppLivewire;
use LivewireComponent;
class Registration extends Component
{
public $email = '';
public $password = '';
protected $rules = [
'email' => 'required|email',
'password' => 'required|min:8',
];
public function register()
{
$this->validate();
}
public function render()
{
return view('livewire.registration');
}
}
?>
<?php
namespace TestsUnit;
use TestsTestCase;
use LivewireLivewire;
use AppLivewireRegistration;
class RegistrationTest extends TestCase
{
public function test_valid_registration_has_no_errors()
{
$component = Livewire::test(Registration::class)
->set('email', 'test@example.com')
->set('password', 'password123');
$component->call('register');
$component->assertHasNoErrors(['email', 'password']);
}
}
?>
Результат выполнения теста:
OK (1 test, 4 assertions)
Смотрите также
-
метод
assertHasErrors,
который проверяет наличие ошибок валидации -
метод
assertSet,
который проверяет значение свойства компонента -
метод
call,
который вызывает метод компонента в тесте -
метод
Livewire::test,
который создает экземпляр тестируемого компонента