【发布时间】:2020-02-23 06:29:20
【问题描述】:
我尝试测试控制器的方法index()。在这个方法中,有一个模型。
class UserController extends Controller
{
public function index()
{
return User::all();
}
}
在测试类中,我有以下内容。
class UserControllerTest extends TestCase
{
public function testIndex():void
{
$user = factory(User::class)->make();
$mock = Mockery::mock(User::class);
$mock->shouldReceive('all')->andReturn($user);
$this->app->instance('User', $mock);
$response = $this->json('GET', 'api/users');
dd($response->getContent()); // error : [2002] Connection refused
}
}
当我运行测试时,与数据库的连接出现错误。这很奇怪,因为我已经模拟了模型,这意味着我不需要建立与数据库的连接。我该如何解决这个错误?
错误
SQLSTATE[HY000] [2002] 连接被拒绝 (SQL: select * from
users其中users.deleted_at为空)
【问题讨论】:
标签: laravel mocking laravel-6 phpunit