Laravel PHPunit测试:“ testUser”与预期的“ object”类型不匹配

加默

我有以下测试:

class AdminPanelTest extends TestCase
{
    public function photoUpload()
    {
        $user = new App\User;
        $user->username = "testUser";
        $user->email = "[email protected]";
        $user->password = bcrypt("testUser");
        $user->photo_url = "abc.jpg";
        $user->save();

        $test = App\User::where('username','=','testUser');
        $this->assertEquals($test,'testUser');
        $this->assertCount(1,$test);
    }
}

结果表明'testUser' does not match expected type "object".

用户已添加到数据库。

我想念什么吗?

杰夫·普基特(Jeff Puckett)

重命名函数以“ test”开始

public function testPhotoUpload()

App\User::where('username','=','testUser')返回一个对象,但是您期望它仅返回一个用户名字符串,'testUser'因此它无法通过测试。

我不熟悉您的App\User课程,但是仅根据惯例猜测,它可能会有一个名称如下的属性username

在这种情况下,如果您比较这些值(即预期的字符串文字'testUser'和对象属性),那么我希望您的测试通过$test->username

另外,assertEquals按照惯例,您希望将期望值作为第一个参数,而将实际值作为第二个参数。

$this->assertEquals('testUser', $test->username);

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章