Laravel - утверждать не софт удалили?Обратные?- Тесты Laravel - PullRequest
0 голосов
/ 14 мая 2018

В тестовом наборе Laravels есть утверждение, называемое

$this->assertSoftDeleted()

Но есть ли обратное?Чтобы утверждать, что что-то не удалено мягко?

Я пробовал assertDatabaseHas, но не работает.

Я сделал это таким образом $this->assertTrue(! $goal->fresh()->trashed());

Работаетсовершенство.

Но есть ли другой, лучший, более - элегантный - и способ Ларавелла?

1 Ответ

0 голосов
/ 14 мая 2018

Что-то не удаляется мягко, просто означает, что столбец deleted_at пуст. Вы можете использовать метод assertDatabaseHas, если этот столбец пуст:

$this->assertDatabaseHas('goals', [
    'id' => $goal->id,
    'deleted_at' => null
]);

Если вы хотите сделать это немного более динамичным, вы можете расширить базовый класс TestCase с помощью пользовательского метода, который сделает это за вас и позволит вам сохранить ваши тесты с читаемым именем утверждения, а также делать что-то еще если вам нравится, найдите соответствующие имена таблиц / столбцов автоматически:

public function assertModelNotSoftDeleted(Model $model)
{
    return $this->assertDatabaseHas($model->getTable(), [
        $model->getKeyName() => $model->getKey(),
        $model::DELETED_AT => null,
    ]);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...