Angejia\Pea\ModelTest::setUp PHP Метод

setUp() публичный метод

public setUp ( )
    public function setUp()
    {
        parent::setUp();
        // 构建数据库模拟层
        $conn = M::mock(ConnectionInterface::class);
        // 模拟连接 angejia 数据库
        $conn->shouldReceive('getDatabaseName')->andReturn('angejia');
        $conn->shouldReceive('getQueryGrammar')->andReturn(new Grammar());
        $conn->shouldReceive('getPostProcessor')->andReturn(new Processor());
        $this->conn = $conn;
        // 让所有 Model 使用我们伪造的数据库连接
        $resolver = M::mock(ConnectionResolverInterface::class);
        $resolver->shouldReceive('connection')->andReturnUsing(function () {
            return $this->conn;
        });
        User::setConnectionResolver($resolver);
        // 模拟 Meta 服务
        $meta = M::mock(Meta::class);
        $meta->shouldReceive('prefix')->with('angejia', 'user')->andReturn('');
        $meta->shouldReceive('prefix')->with('angejia', 'user', true)->andReturn('');
        $this->meta = $meta;
        // 模拟 Cache 服务
        $cache = M::mock(Cache::class);
        $this->cache = $cache;
        // 注入依赖的服务
        $this->app->bind(Meta::class, function () {
            return $this->meta;
        });
        $this->app->bind(Cache::class, function () {
            return $this->cache;
        });
    }