Метод assertValid
Метод assertValid применяется к объекту ответа
в тестах Laravel и проверяет, что валидация переданных
данных прошла успешно. Этот метод вызывается после
отправки запроса и проверяет, что в ответе отсутствуют
ошибки валидации. Первым параметром можно передать
массив конкретных полей для проверки, вторым параметром
передаются форматы ошибок.
Синтаксис
<?php
$this->post($uri, $data)->assertValid($fields, $format);
?>
Пример
Базовое использование метода для проверки успешной валидации данных:
<?php
namespace Tests\Feature;
use Tests\TestCase;
class UserTest extends TestCase
{
public function test_user_creation_validation_passes()
{
$data = [
'name' => 'John Doe',
'email' => 'john@example.com',
'password' => 'secret123'
];
$res = $this->post('/api/users', $data);
$res->assertValid();
}
}
?>
Результат выполнения кода:
"Validation passed successfully"
Пример
Проверка валидации с указанием конкретных полей и формата ошибок:
<?php
namespace Tests\Feature;
use Tests\TestCase;
class PostTest extends TestCase
{
public function test_post_validation_with_specific_fields()
{
$data = [
'title' => 'Test Post',
'content' => 'This is test content',
'category' => 'tech'
];
$res = $this->post('/api/posts', $data);
$res->assertValid(['title', 'content']);
}
}
?>
Результат выполнения кода:
"Validation passed for specified fields"
Пример
Использование метода в комплексном тесте с множественными проверками:
<?php
namespace Tests\Feature;
use Tests\TestCase;
use App\Models\Product;
class ProductTest extends TestCase
{
public function test_product_update_with_validation()
{
$product = Product::factory()->create();
$data = [
'name' => 'Updated Product',
'price' => 99.99,
'stock' => 10
];
$res = $this->put("/api/products/{$product->id}", $data);
$res->assertValid();
$res->assertStatus(200);
$res->assertJson(['success' => true]);
}
}
?>
Результат выполнения кода:
["All validation and status checks passed"]
Смотрите также
-
метод
assertStatus,
который проверяет HTTP-статус ответа -
метод
assertInvalid,
который проверяет наличие ошибок валидации -
метод
assertJson,
который проверяет структуру JSON-ответа -
метод
assertSessionHasErrors,
который проверяет ошибки в сессии