我正在研究PHPUnit测试用例,因此需要创建模拟对象但是会收到错误
代码:
UserControllerTest.php:
$user = $this->getMock('\User', array('Methods Name'));
$user->expects($this->once())
->method('Methods Name');
从我的控制器传递此User Mock对象:
userControllerService->userRequest($user);
我在UserController中的userRequest():
$objUserRequest->setUser($user`);
我需要在DB中保留这个用户对象但抛出"传递给的参数1必须是MyBundle \ Entity \ MyEntity的一个实例,Mock_MyEntity_183626da的实例给出"
答案 0 :(得分:2)
\ User类必须是完全限定的 - 要么添加完整的命名空间(即使您使用use
语句,仍需要完全限定的路径)或使用User::class
$this->getMock('\Full\Path\Required\User', ['Methods Name']);
$this->getMock(User::class); // if you have the namespace in the file with 'use'