我有以下测试:
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".
。
用户已添加到数据库中。
我错过了什么吗?
答案 0 :(得分:1)
将您的功能重命名为" test"
public function testPhotoUpload()
App\User::where('username','=','testUser')
正在返回一个对象,但您希望它只返回一个用户名字符串'testUser'
,因此它无法通过您的测试。
我不熟悉你的App\User
课程,但只是从大会上猜测,它可能会有一个名为username
的属性
在这种情况下,如果您比较这些值,我希望您的测试通过,即预期的字符串文字'testUser'
和对象属性$test->username
此外,assertEquals
按照惯例要求您将期望值作为第一个参数,将实际值作为第二个参数。
$this->assertEquals('testUser', $test->username);