РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
1199 of 1392 menu

Метод assertCreated

Метод assertCreated применяется к объекту ответа в тестах Laravel и проверяет, что HTTP-статус ответа равен 201. Статус 201 означает, что запрос был успешно обработан, и в результате был создан новый ресурс. Метод не принимает никаких параметров и используется для проверки успешного создания сущности через API.

Синтаксис

<?php $this->post($uri, $data)->assertCreated(); ?>

Пример

Давайте протестируем создание новой статьи через API:

<?php namespace Tests\Feature; use Tests\TestCase; use App\Models\Article; class ArticleTest extends TestCase { public function test_store_returns_created_status() { $data = [ 'title' => 'Test Article', 'content' => 'Test Content', 'status' => 'published', ]; $response = $this->postJson('/api/articles', $data); $response->assertCreated(); } } ?>

Результат выполнения кода:

"Test passed: Response status is 201"

Пример

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

<?php namespace Tests\Feature; use Tests\TestCase; use App\Models\User; use Illuminate\Foundation\Testing\RefreshDatabase; class UserTest extends TestCase { use RefreshDatabase; public function test_user_registration_returns_201() { $data = [ 'name' => 'John Doe', 'email' => 'john@example.com', 'password' => 'password123', ]; $response = $this->postJson('/api/users', $data); $response->assertCreated(); $this->assertDatabaseHas('users', [ 'email' => 'john@example.com', ]); } } ?>

Результат выполнения кода:

"Test passed: Response status is 201 and user exists in database"

Пример

Давайте сравним поведение метода при успешном и неудачном создании ресурса:

<?php namespace Tests\Feature; use Tests\TestCase; use App\Models\Product; class ProductTest extends TestCase { public function test_product_creation_success() { $data = [ 'name' => 'Test Product', 'price' => 99.99, 'stock' => 10, ]; $response = $this->postJson('/api/products', $data); $response->assertCreated(); } public function test_product_creation_fails_with_invalid_data() { $data = [ 'name' => '', 'price' => -5, ]; $response = $this->postJson('/api/products', $data); try { $response->assertCreated(); } catch (\Exception $e) { echo $e->getMessage(); } } } ?>

Результат выполнения кода:

"Test passed: Response status is 201" "Expected response status code [201] but received 422"

Смотрите также

  • метод assertStatus,
    который проверяет произвольный HTTP-статус
  • метод assertOk,
    который проверяет статус 200
  • метод assertNoContent,
    который проверяет статус 204
  • метод postJson,
    который отправляет JSON-запрос и возвращает объект ответа
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить