Laravel - как использовать фейкер в тесте PHPUnit?

Это дает мне эту ошибку, когда я запускаю тест:

undefined variable $faker.

Это файл WithFaker.

https://github.com/laravel/framework/blob/5.5/src/Illuminate/Foundation/Testing/WithFaker.php

<?php

namespace Tests\Unit;

use App\User;
use Tests\TestCase;
use Illuminate\Foundation\Testing\WithFaker;
use Illuminate\Foundation\Testing\RefreshDatabase;

class LoginTest extends TestCase
{

    use WithFaker;

    /**
     * A basic test example.
     *
     * @return void
     */

    /** @test */
    public function test_example()
    {

        $user = User::create([
            'username' => $faker->firstName(),
        ]);

    }

}
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Поиск нового уровня в Laravel с помощью MeiliSearch и Scout
Поиск нового уровня в Laravel с помощью MeiliSearch и Scout
Laravel Scout - это популярный пакет, который предоставляет простой и удобный способ добавить полнотекстовый поиск в ваше приложение Laravel. Он...
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
В последние годы архитектура микросервисов приобрела популярность как способ построения масштабируемых и гибких приложений. Laravel , популярный PHP...
Как построить CRUD-приложение в Laravel
Как построить CRUD-приложение в Laravel
Laravel - это популярный PHP-фреймворк, который позволяет быстро и легко создавать веб-приложения. Одной из наиболее распространенных задач в...
40
0
19 512
4
Перейти к ответу Данный вопрос помечен как решенный

Ответы 4

Ответ принят как подходящий

Вы должны использовать $this->faker->firstName(), а не только $faker->firstName()

Обновление 1

Теперь, когда мы используем WithFaker Trait, $this->faker даст нам null, чтобы обойти это, сначала обязательно позвоните в $this->setupFaker().

например

class SomeFactory
{
    use WithFaker;

    public function __construct()
    {
        $this->setUpFaker();
    }

}

кредит @Ebi

Для тех, кто придет к этому позже, имейте в виду, что при использовании трейта WithFaker вы получите null на $this->faker. Чтобы решить эту проблему, вам необходимо вызвать в $this->setupFaker() перед вызовом $this->faker.

Ebi 05.01.2021 12:23

Спасибо @Ebi за место

Abdel mounaim 05.01.2021 17:31

после завершения установки Faker. включить файл автозагрузки и создать экземпляр

$faker = \Faker\Factory::create();
$faker->firstname()
$faker->lastname()

Для получения дополнительной информации посещение

проверьте запуск функции seed (Faker $ faker).

Для всех, кто приедет сюда с 2021 года. Мы больше не требуем добавления

$this->setUpFaker();

Вам нужно только включить черту, как описано в принятом ответе.

Другие вопросы по теме