Используйте массив приведений модели для проверки целостности модели в PHPUnit

#laravel #model #phpunit #phpstorm

#ларавель #Модель #phpunit #PhpStorm именно

Вопрос:

Окружающая среда: PhpStorm, с использованием Laravel и PHPUnit.

Что я хочу: использовать модель $casts on my users и выполнить функцию foreach для сравнения всех его полей для конкретного пользователя, утверждая, что все переменные из базы данных имеют тот же тип, что и у модели my users $casts.

Есть ли какая-нибудь интегрированная функция, которая уже делает это для меня? Если нет, пожалуйста, скажите мне, как сделать это с нуля.

Спасибо.

Ответ №1:

Чтобы получить $casts для любой модели

 $user = User::firstOrFail();

$user->getCasts();


/*
 * Output might be an array like

    [
      "id" => "int",
      "email_verified_at" => "datetime",
    ]
*/
 

Однако, если вы объявите свойство приведения в классе модели, Laravel обеспечит правильное приведение атрибутов — будьте уверены, что функциональность приведения атрибутов в соответствии с массивом $casts должна быть тщательно протестирована на уровне фреймворка.