Laravel PHPunit 测试:'testUser' 与预期类型不匹配 "object"
Laravel PHPunit test: 'testUser' does not match expected type "object"
我有以下测试:
class AdminPanelTest extends TestCase
{
public function photoUpload()
{
$user = new App\User;
$user->username = "testUser";
$user->email = "testUser@hotmail.com";
$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".
.
用户被添加到数据库中。
我是不是漏掉了什么?
重命名您的函数以 "test"
开头
public function testPhotoUpload()
App\User::where('username','=','testUser')
正在 returning 一个对象,但您期望它 return 只是一个用户名字符串 'testUser'
所以它没有通过您的测试。
我不熟悉你的 App\User
class,但只是根据惯例猜测,它可能会有一个 属性 命名为 username
在那种情况下,如果您比较这些值,即预期的字符串文字 'testUser'
和对象 属性 $test->username
[=19,我希望您的测试能够通过=]
此外,assertEquals
按照惯例希望您将期望值作为第一个参数,将实际值作为第二个参数。
$this->assertEquals('testUser', $test->username);
我有以下测试:
class AdminPanelTest extends TestCase
{
public function photoUpload()
{
$user = new App\User;
$user->username = "testUser";
$user->email = "testUser@hotmail.com";
$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".
.
用户被添加到数据库中。
我是不是漏掉了什么?
重命名您的函数以 "test"
开头public function testPhotoUpload()
App\User::where('username','=','testUser')
正在 returning 一个对象,但您期望它 return 只是一个用户名字符串 'testUser'
所以它没有通过您的测试。
我不熟悉你的 App\User
class,但只是根据惯例猜测,它可能会有一个 属性 命名为 username
在那种情况下,如果您比较这些值,即预期的字符串文字 'testUser'
和对象 属性 $test->username
[=19,我希望您的测试能够通过=]
此外,assertEquals
按照惯例希望您将期望值作为第一个参数,将实际值作为第二个参数。
$this->assertEquals('testUser', $test->username);