위치:
아카이브 Apex 테스트
프로덕션 환경에서 작업하기 전에 아카이브 앱의 아카이브 Apex Apex 클래스 래퍼에서 테스트를 실행합니다.
MockHttpResponseGenerator.cls
이 코드는 콜아웃을 위한 모의 코드를 나타냅니다. MockHttpResponseGenerator 클래스는 HttpCalloutMock Apex 인터페이스를 구현합니다.
@isTest
global class MockHttpResponseGenerator implements HttpCalloutMock {
public String fakeResponseJson;
public integer statusCode;
String redirectHeader;
public MockHttpResponseGenerator(String fakeResponseJson,Integer statusCode){
this.statusCode = statusCode;
this.fakeResponseJson = fakeResponseJson;
this.redirectHeader = '/example/test';
}
public HTTPResponse respond(HTTPRequest req) {
HTTPResponse res = new HTTPResponse();
res.setBody(this.fakeResponseJson);
res.setStatusCode(this.statusCode);
res.setHeader('Location', this.redirectHeader);
return res;
}
}SearchSdkTest.cls
이 코드는 MockHttpResponseGenerator 클래스를 사용하여 모의 HTTP를 설정하여 SF_Archive.ArchiverAccessor의 전역 검색 기능을 테스트합니다. 이 테스트는 검색 작업이 예상 JSON 데이터 및 상태 코드를 반환하는지 확인합니다.
@isTest
public with sharing class searchSdkTest {
@isTest
private static void searchSdk() {
// Define a JSON string to be used as the mock response body
String jsonBody = '{"records": [{"CaseNumber":"01916767", "Id":"500Xx000000XXXXXX"}], "total_result_count": 1, "scroll_id":"-1" }';
// Set up the mock HTTP response using the predefined JSON body and HTTP 200 status code
SF_Archive.ArchiverAccessor.setMock((HttpCalloutMock) new MockHttpResponseGenerator(jsonBody, SF_Archive.ArchiverAccessorResponse.HTTP_200_OK));
// Insert a test archive configuration
insert createTestArchiveConfiguration();
// Create a list to hold search filters
list<SF_Archive.SearchFilter> request1 = new list<SF_Archive.SearchFilter>();
// Create a new search filter with the name 'test' and add it to the list
SF_Archive.SearchFilter filter1 = new SF_Archive.SearchFilter('Name', 'test');
request1.add(filter1);
// Start the test context
Test.startTest();
// Perform a global search using the archiver accessor and capture the response
SF_Archive.ArchiverAccessorResponse res = SF_Archive.ArchiverAccessor.performArchiverGlobalSearch('Account', request1);
// Stop the test context
Test.stopTest();
// Assert that the response status code is HTTP 200 OK
system.assertEquals(SF_Archive.ArchiverAccessorResponse.HTTP_200_OK, res.getStatusCode());
// Assert that the response body matches the predefined JSON body
system.assertEquals(res.getBody(), jsonBody);
}
private static SF_Archive_Configuration__c createTestArchiveConfiguration(){
return createTestArchiveConfiguration('https://example');
}
public static SF_Archive_Configuration__c createTestArchiveConfiguration(String url){
SF_Archive_Configuration__c ac = new SF_Archive_Configuration__c();
ac.Name = 'SF_URL';
ac.SF_URL__c = url;
ac.SF_API_Name__c='SF_URL';
return ac;
}
}
