在 Laravel 中,我编写了以下测试:
public function testUserCanCreateAssortment()
{
$this->signIn();
$this->get('/assortments/create')->assertStatus(200);
$this->followingRedirects()
->post('/assortments', $attributes = Assortment::factory()->raw())
->assertSee($attributes['title'])
->assertSee($attributes['description']);
}
}
当我使用命令
phpunit --filter testUserCanCreateItem
运行它时,会出现以下错误:
Error: Call to undefined function Tests\factory()
不知道是什么原因导致的。我已经查看了我的工厂和testcase.php
文件,但是找不到解决方法。我做错了什么?我的
testcase.php
文件:<?php
namespace Tests;
use Illuminate\Foundation\Testing\TestCase as BaseTestCase;
abstract class TestCase extends BaseTestCase
{
use CreatesApplication;
protected function signIn($user = null)
{
$user = $user ?: User::factory()->create();
$this->actingAs($user);
return $user;
}
}
下面是错误信息提供的代码行:
/var/www/tests/TestCase.php:13
/var/www/tests/Feature/ItemTest.php:29
factory()
方法,现在你需要使用User::factory()->create();
来代替factory('App\User')->create();
或者安装 legacy factory package。 - Remulfactory()
方法吗? - Remul