-
Apex Tests Api 모의 응답(Mock) 생성 - implement HttpCalloutMockApex 2024. 4. 27. 21:35
1. implements HttpCalloutMock ( 모의 응답 Class 생성 )
- @isTest
- implements HttpCalloutMock
- global HttpResponse respond(){ ... }
@isTestglobal class zz_Clvs_MDE_Test_ResponseDocumentCancel implements HttpCalloutMock{
global HttpResponse respond(HttpRequest request){System.debug('@@@@ 문서 서명요청취소 Response 생성 @@@@ ' + request);Integer resStatusCode = 201;String resBody = '{'+ '"id": "9d334180-e2a4-11ee-82eb-91070",'+ '"title": "1111122",'+ '"status": "ABORTED",'+ '"requester": { "email": "deveer@clv.kr", "name": "클스"},'+ '"participants": [ {'+ '"id": "9d6a3068c-fdf",'+ '"name": "1111",'+ '"signingOrder": 1,'+ '"signingDue": { "valid": true, "datetime": "2024-03-29T08:18:34.478Z" },'+ '"signingMethod": { "type": "EMAIL", "value": "g@co.kr" },'+ '"locale": "ko" '+ '}],'+ '"currentSigningOrder": 1,'+ '"signings": [],'+ '"accessibleByParticipant": false,'+ '"abort": { "type": "REQUEST_CANCELLATION", "message": "취소 다시 요청" },'+ '"updatedAt": "2024-03-28T07:17:50.996Z",'+ '"createdAt": "2024-03-15T08:18:34.000Z",'+ '"auditTrail": null'+ '}';// Response 세팅HttpResponse response = new HttpResponse();response.setHeader('Content-Type', 'application/json');response.setBody(resBody);response.setStatusCode(resStatusCode);
return response;
}
2. Test.setMock ( test Class에서 활용 )
- Test.setMock(HttpCalloutMock.class, 모의응답Class인스턴스 );
- System.assertEquals()
- System.assert()
@isTestpublic with sharing class zz_Clvs_MDE_Document_CancelTest {@isTeststatic void documentCencel_Defalut(){
zz_Clvs_MDE_Model_ResultMsg successResult;zz_Clvs_MDE_Model_ResultMsg missingMessage;zz_Clvs_MDE_Test_ResponseDocumentCancel.createDocument();MDE_Document__c document = [SELECT Id FROM MDE_Document__c LIMIT 1];
Test.setMock(HttpCalloutMock.class, new zz_Clvs_MDE_Test_ResponseDocumentCancel());
Test.startTest();successResult = zz_Clvs_MDE_Document_Cancel.documentCancel(document.Id, '취소 사유', true);missingMessage = zz_Clvs_MDE_Document_Cancel.documentCancel(document.Id, '', true);Test.stopTest();
System.assertEquals(201, successResult.statusCode); //API status 코드가 201인지 확인}}반응형