Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Laravel 拉威尔测试在连接多对多关系时中断_Laravel_Unit Testing_Automated Tests_Laravel Dusk - Fatal编程技术网

Laravel 拉威尔测试在连接多对多关系时中断

Laravel 拉威尔测试在连接多对多关系时中断,laravel,unit-testing,automated-tests,laravel-dusk,Laravel,Unit Testing,Automated Tests,Laravel Dusk,我有一个测试,应该测试默认用户的注册。测试函数如下所示: public function testCanRegister() { $this->json('POST', '/register', [ 'name' => 'John Doe', 'email' => 'johndoe@hotmail.com', 'password' => bcrypt('1234')

我有一个测试,应该测试默认用户的注册。测试函数如下所示:

   public function testCanRegister()
    {
        $this->json('POST', '/register', [
            'name' => 'John Doe',
            'email' => 'johndoe@hotmail.com',
            'password' => bcrypt('1234')
        ])
            ->assertStatus(200)
            ->assertJsonFragment([
                'id' => 3,
                'name' => 'John Doe',
                'email' => 'johndoe@hotmail.com'
            ]);
    }
它给了我以下错误:

预期状态代码为200,但收到500。未能断言200 与500相同

它正在测试的功能如下:

   public function register(RegisterRequest $request)
    {
        $validatedData = $request->validated();

        $user = new User;
        $user->name = $validatedData['name'];
        $user->email = $validatedData['email'];
        $user->password = bcrypt($validatedData['password']);
        $user->roles->attach(1); // give User role.

        if (!$user->save()) {
            return response()->json('Gebruiker kan niet worden geregistreerd', 500);
        }

        // Create session for the just registered User.
        Auth::attempt([
            'email' => $user->email,
            'password' => $request->json('password')
        ]);

        return response()->json($user, 200);
    }
当我评论这句话时:

$user->roles->attach(1)

测试成功。关于如何改进我的测试以使其成功,有什么想法吗?唯一不起作用的是附加角色

喜欢

$user=App\user::find(1)

$user->roles()->attach($roleId)

所以,当你附加,你附加的关系,而不是一个集合。。。 请不要认为$user->roles是角色的集合,而$user->roles()是一个关系

只需将您的声明更新为:

$user->roles()->attach(1)

喜欢

$user=App\user::find(1)

$user->roles()->attach($roleId)

所以,当你附加,你附加的关系,而不是一个集合。。。 请不要认为$user->roles是角色的集合,而$user->roles()是一个关系

只需将您的声明更新为:

$user->roles()->attach(1)

试试$user->roles()->attach(1);先保存用户后

比如:

$user->save()

$user->roles()->attach(1)

试试$user->roles()->attach(1);先保存用户后

比如:

$user->save()

$user->roles()->attach(1)