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

Метод assertSoftDeleted

Метод assertSoftDeleted предназначен для проверки того, что указанная запись была мягко удалена. Он проверяет наличие записи в базе данных с установленным значением в поле deleted_at. Первым параметром передаётся имя модели, вторым - массив условий для поиска записи. Если запись не найдена или не является мягко удалённой, тест завершится с ошибкой.

Синтаксис

<?php $this->assertSoftDeleted($model, $conditions); ?>

Пример

Давайте проверим, что статья с id равным 1 была мягко удалена:

<?php namespace Tests\Feature; use Tests\TestCase; use App\Models\Article; use Illuminate\Foundation\Testing\RefreshDatabase; class ArticleTest extends TestCase { use RefreshDatabase; public function test_article_is_soft_deleted() { $article = Article::factory()->create(); $article->delete(); $this->assertSoftDeleted(Article::class, [ 'id' => $article->id ]); } } ?>

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

"Test passed successfully"

Пример

Проверим мягкое удаление пользователя с определённым email:

<?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_soft_delete_by_email() { $user = User::factory()->create([ 'email' => 'user@example.com' ]); $user->delete(); $this->assertSoftDeleted(User::class, [ 'email' => 'user@example.com' ]); } } ?>

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

"Test passed successfully"

Пример

Проверим мягкое удаление записи с несколькими условиями:

<?php namespace Tests\Feature; use Tests\TestCase; use App\Models\Post; use Illuminate\Foundation\Testing\RefreshDatabase; class PostTest extends TestCase { use RefreshDatabase; public function test_post_soft_deleted_by_multiple_conditions() { $post = Post::factory()->create([ 'user_id' => 5, 'status' => 'draft' ]); $post->delete(); $this->assertSoftDeleted(Post::class, [ 'user_id' => 5, 'status' => 'draft' ]); } } ?>

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

"Test passed successfully"

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

  • метод assertDatabaseHas,
    который проверяет наличие записи в базе данных
  • метод assertDatabaseMissing,
    который проверяет отсутствие записи в базе данных
  • метод assertModelExists,
    который проверяет существование модели в базе данных
  • метод assertModelMissing,
    который проверяет отсутствие модели в базе данных
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить