当前位置: 首页 > 知识库问答 >
问题:

PHP特性测试Laravel-8中找不到工厂

端木元青
2023-03-14

只是在玩laravel-8单元测试。我扩展了基本的测试用例,并认为laravels工厂方法将可用。我检查了composer.json,工厂正在加载。

我正在尝试运行此特定测试,但factory:

<?php

namespace Tests\Feature\Http\Controllers\Auth;

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

class LoginControllerTest extends TestCase
{
    use RefreshDatabase;
    /** @test */
    public function login_authenticates_and_redirects_user()
    {
        $user = factory(User::class)->create();

        $response = $this->post(route('login'), [
            'email' => $user->email,
            'password' => 'password'
        ]);

        $response->assertRedirect(route('home'));
        $this->assertAuthenticatedAs($user);
    }
}

我得到的错误是:

1) Tests\Feature\Http\Controllers\Auth\LoginControllerTest::login_authenticates_and_redirects_user
Error: Call to undefined function Tests\Feature\Http\Controllers\Auth\factory()

共有1个答案

柯国安
2023-03-14

升级到laravel-8版本说明:

  • https://laravel.com/docs/8.x/upgrade#seeder-factory-namespaces

Laravel的模型工厂功能已经完全重写,以支持类,与Laravel 7.x风格的工厂不兼容。“

所以为了让它发挥作用,我使用了:

$user = \App\Models\User::factory(User::class)->make();
 类似资料:
  • 问题内容: 我已经使用composer安装了Laravel,没有问题,但是当我尝试在终端中执行“ laravel ”时,我 遇到了 以下典型错误: -bash:laravel:找不到命令 如果我阅读了官方网站的文档,则需要这样做: 确保将〜/ .composer / vendor / bin目录放置在PATH中,以便在终端中运行 laravel 命令时找到laravel可执行文件。 但是我不知道该

  • 本文向大家介绍PHP 8新特性简介,包括了PHP 8新特性简介的使用技巧和注意事项,需要的朋友参考一下 PHP 8新特性 新的主要PHP版本PHP 8预计将于2020年底发布。它现在处于非常活跃的开发阶段,所以在接下来的几个月里,事情可能会发生很大的变化。 在这篇文章中,我将持续更新预期的内容列表:新特性、性能改进和重大变化。因为PHP 8是一个新的主版本,所以您的代码被破坏的几率更高。如果你一直

  • 我正在尝试设置一个属性,该属性将由我的功能测试中的每个方法使用。问题是它在测试之间并没有持续。 这是我的测试类: 我只希望属性在该类中的所有测试中保持不变。

  • 所以我是JUnit的新手,我们必须用它来做家庭作业。我们的教授给了我们一个有一个测试类的项目。当我右键单击>Run as>JUnit Test,我会弹出一个错误,上面写着‘找不到JUnit tests’。我知道这里已经回答了这个问题(没有找到测试运行程序'JUnit4'的测试),但是关闭eclipse、重新启动、清理和构建似乎不起作用。下面是我的运行配置、构建路径和我试图测试的类的截图。

  • 我正在用Laravel 8制作一个论坛,基本上每当用户在这个论坛上提问时,它应该被重定向到这个问题。 我还想使重定向过程基于问题的字段。

  • 我已经安装Laravel使用作曲家没有问题,但当我试图执行"laravel"在我的终端我有这个典型的错误: -bash: laravel:命令未找到 如果我读了官方网站的留档,我需要这样做: 确保在路径中放置~/.composer/vendor/bin目录,以便在终端中运行laravel命令时找到laravel可执行文件。 但我不知道该怎么做(我对终端控制台命令不熟悉)。 你能帮我吗?谢谢

  • 我正在使用gradle来构建和测试我的应用程序。我使用命令 但是当从eclipse中运行时,测试工作完美,当使用gradle运行时失败。我的测试定义如下,它找不到的属性文件在这两个文件夹中: /home/user/Development/git/myproject/src/main/java/com/mycompany/config/home/user/Development/git/myproj

  • 运行后,它找不到我的ANDROID_SDK_ROOT 未定义$Android_SDK_ROOT,请将SDK安装目录的路径设置为$Android_SDK_ROOT, 它已经在我的/.zshrc文件中定义 导出Android_SDK=/users/chiwan/library/android/sdk导出路径=/users/chiwan/library/android/sdk/platform-tool