DBGroup)); $db = $this->getMockBuilder($driverClass) ->disableOriginalConstructor() ->onlyMethods(['query', 'error']) ->getMock(); $db->method('query')->willReturn(false); $db->method('error')->willReturn(['code' => 1, 'message' => 'simulated query failure']); return $db; } /** * @template T of object * * @param class-string $class * * @return T */ protected function modelWithFailingQuery(string $class) { $model = new $class(); $prop = new \ReflectionProperty(BaseModel::class, 'db'); $prop->setAccessible(true); $prop->setValue($model, $this->failingConnection()); return $model; } }