当我运行测试时,它给了我这个错误:

undefined variable $faker.

This is the WithFaker file.

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(),
        ]);

    }

}

推荐答案

你必须使用$this->faker->firstName()而不仅仅是$faker->firstName()

Update 1

现在,当我们使用WithFaker时,trait $this->faker会给我们null,为了避免这个问题,一定要先打$this->setupFaker().

例如

class SomeFactory
{
    use WithFaker;

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

}

credit @Ebi

Laravel相关问答推荐

Dompdf 古吉拉特语和印地语文本未正确显示

如何在自定义表单请求中获取错误验证数据

API GET 请求得到与数据库记录不同的结果

如何保存/重定向 Laravel Artisan 命令的输出?

Laravel 5 如何配置 Queue 数据库驱动程序以连接到非默认数据库?

如何在同一行显示 Laravel artisan 命令输出?

找不到列:1054字段列表中的未知列0-Laravel-我的代码中的任何地方都没有0列

在 Laravel 中无效后防止重定向到主页

在 laravel 5.2 中禁用特定路由的 Web 中间件

如何在 Eloquent 上设置条件关系

Laravel 动作未定义

如何在 Laravel 中实现数组类型路由?

如何在 Laravel 5.1 中改变环境?

干预图像:直接从带有原始文件名和分机的网址保存图像?

laravel 4:更新行时如何从列的当前值中减一?

Laravel assets资源与混合

如何判断是否在laravel中使用了分页

Laravel 不活动时间设置

Laravel 更新后用户模型错误(用户类包含 3 个抽象方法)

为什么`catch (Exception $e)` 不处理这个`ErrorException`?