1. StaticResourceCalloutMock 이란?
- HTTP 콜아웃 테스트를 위한 가짜 응답을 지정하는 데 사용되는 유틸리티 클래스
- 메서드 - setHeader(), setStaticResource(), setStatus(), setStatusCode()
- 관련 help 문서
2. 대상 org에 정적자원 등록
- 콜아웃 테스트를 위한 가짜 API 응답값 등록 ( 파일 확장자명 .json 으로 변경하여 등록 )
{
"id": "2314fa20-fb8a-11ee-ad0a-775297304a05",
"expiry": "2024-04-16T02:42:00.770Z",
"embeddedUrl": "https://app.modusign.co.kr/embedded-draft/2314fa20-fb8a-11xud9ndHvwo"
}
3. new StaticResourceCalloutMock();
- setStatus()
- setStaticResource()
- setStatusCode()
StaticResourceCalloutMock apiMock
= new StaticResourceCalloutMock();
apiMock.setStatus('OK');
apiMock.setStaticResource('embeddedDrafts'); //org에 등록한 static resource 이름 입력
apiMock.setStatusCode(201);
4. Test.setMock(HttpCalloutMock.class, 내가 생성한 CalloutMock 인스턴스 )
Test.setMock(HttpCalloutMock.class, apiMock);
Test.startTest();
bb_Clvs_MDE_Template_Create_Controller t1
= new bb_Clvs_MDE_Template_Create_Controller();
result = bb_Clvs_MDE_Template_Create_Controller.call_Embedded_Create('템플릿 제목');
Test.stopTest();
System.assertEquals(201, result.statusCode);
5. 전체 코드 확인
@isTest
public with sharing class aa_MeiTestClass {
@isTest
static void call_Embedded_Create_success(){
zz_Clvs_MDE_Model_ResultMsg result;
StaticResourceCalloutMock apiMock = new StaticResourceCalloutMock();
apiMock.setStatus('OK');
apiMock.setStaticResource('embeddedDrafts');
apiMock.setStatusCode(201);
Test.setMock(HttpCalloutMock.class, apiMock);
Test.startTest();
bb_Clvs_MDE_Template_Create_Controller t1 = new bb_Clvs_MDE_Template_Create_Controller();
result = bb_Clvs_MDE_Template_Create_Controller.call_Embedded_Create('템플릿 제목');
Test.stopTest();
System.assertEquals(201, result.statusCode);
}
}