Skip to content

테스트 및 디버깅

로컬 테스트

로컬 환경에서 테스트할 때 SDK는 디버그 모드로 초기화됩니다. 이를 통해 모든 API에 접근할 수 있으며, Wortal에 게임을 업로드하지 않고도 통합 테스트를 실행할 수 있습니다.

대부분의 API는 모의 데이터를 반환하지만, player.setDataAsyncplayer.getDataAsync는 로컬 스토리지에 데이터를 저장하고 불러오는 역할을 합니다. 이 부분은 데이터를 저장하고 불러오는 방법을 테스트하고 제대로 작동하는지 확인하기 위한 것입니다.

오류 처리

SDK는 오류가 발생하면 ErrorMessage 객체를 반환한다. 이 객체에는 오류 코드, 오류 메시지, 오류에 대한 함수 호출, 관련 API 문서 URL 등 오류에 대한 중요한 정보가 포함되어 있다.

오류를 일으키는 코드를 식별하고 처리하는 것은 좋은 습관이다. 이렇게 하면 문제가 발생했을 때 신속하게 문제를 식별하고 수정할 수 있습니다. Async 접미사가 붙은 모든 API는 오류를 감지하는 데 사용할 수 있는 Promise를 반환합니다. 오류 코드를 확인하여 오류를 적절히 처리할 수 있는 방법을 결정합니다.

Wortal.context.inviteAsync(payload).then(() => {
    // 초대 성공
}).catch((error) => {
    if (error.code === "NOT_SUPPORTED") {
        // 이 플랫폼에서는 초대 기능이 지원되지 않습니다.
        // 초대하지 않고도 게임을 계속할 수 있습니다.
    } else if (error.code === "NETWORK_FAILURE") {
        // 플레이어 네트워크 연결이 끊어졌습니다.
        // 플레이어가 재접속할 때 다시 초대를 시도할 수 있습니다.
    } else {
        // 제대로 복구하고 게임 플레이를 계속할 수 있습니다.
    }
});

디버깅

모든 플랫폼에서 SDK는 콘솔에 디버그 메시지를 기록합니다. 디버그 로그 레벨을 활성화하면 SDK가 수행하는 작업에 대한 더 많은 정보를 얻을 수 있으며, 문제가 발생했을 때 문제를 식별하고 수정할 수 있습니다.

API 지원

모든 API가 모든 플랫폼에서 지원되는 것은 아닙니다. 지원되는 API인지 확인하는 방법은 다음 두 가지가 있다:

  • 지원되지 않는 API를 호출할 때 발생하는 NOT_SUPPORTED 오류를 감지합니다.
Wortal.context.inviteAsync(payload).catch((error) => {
    if (error.code === "NOT_SUPPORTED") {
        // 이 플랫폼에서는 초대 기능이 지원되지 않습니다.
        // 초대하지 않고도 게임을 계속할 수 있습니다.
        return;
    } else {
        // 제대로 복구하고 게임 플레이를 계속할 수 있습니다.
    }
});
  • API를 호출하기 전에 해당 API가 현재 플랫폼에서 지원되는지 확인한다.
const supportedAPIs = Wortal.getSupportedAPIs();
if (supportedAPIs.includes("context.inviteAsync")) {
    // 이 플랫폼은 초대 기능을 지원합니다.
}

두 가지 방법 중 어느 것이든 상관없지만, 오류 발생이 적고 오류 처리에 중점을 둔 첫 번째 방법을 추천합니다.