nro*_*fis 6 php laravel-5 laravel-5.2
我有一个普通的User模型。当我使用它时,系统工作正常。但是现在我正在尝试在与 Laravel 集成的 PHPUnit 中创建单元测试。
我有一个创建用户的工厂:
$factory->define(App\User::class, function (Faker\Generator $faker) {
return [
'id' => $faker->randomNumber(9),
'email' => $faker->safeEmail,
'first_name' => $faker->firstNameMale,
'last_name' => $faker->lastName,
'password' => bcrypt(str_random(10)),
'remember_token' => str_random(10),
];
});
Run Code Online (Sandbox Code Playgroud)
我将用户更改为以整数 ID 作为主键,但它没有定义为自动增量。因此工厂为 ID 创建随机数。
我还创建了简单的测试:
public function test_id_is_visible() {
$user = factory(App\User::class)->create();
$this->actingAs($user);
$this->visit('/userprofile');
$this->see($user->id);
}
Run Code Online (Sandbox Code Playgroud)
该测试总是失败,但当我手动导航到页面时似乎没问题。
我注意到在测试$user->id中始终为0。即使在工厂中也不能为0。我检查并 Laravel 将用户正确插入到数据库中并且它具有正确的ID,但在代码中我总是得到 0。
我该怎么做才能获得正确的 ID 值?
编辑
现在我明白,如果我改变$user = factory(App\User::class)->create();对$user = factory(App\User::class)->make();用户实例持有一个正确的ID。但是为什么创建清除ID?
| 归档时间: |
|
| 查看次数: |
5563 次 |
| 最近记录: |