2014-11-17 7 views
0

이 특정 클래스에 대한 테스트 클래스를 만드는 데 truble을 사용하고 있습니다. 누구든지 이것을 구현할 수있는 코드를 제공 할 수 있다면 매우 감사 할 것입니다.일괄 에이펙스 용 테스트 클래스 만들기

많은 감사

등급 :

global class TalentIntCustomerBatch implements Database.Batchable<sObject>, Database.AllowsCallouts{ 
    global final String query; 

    global TalentIntCustomerBatch(String q){ 
     query=q; 
    } 

    global Database.QueryLocator start(Database.BatchableContext BC){ 
     return Database.getQueryLocator(query); 
    } 

    global void execute(Database.BatchableContext BC, List<sObject> scope){  
     for(sObject s : scope){ 
      Contact c = (Contact)s; 
      TalentIntegrationUtils.updateCustomer(c.Id, c.LastName); 
     } 
    } 

    global void finish(Database.BatchableContext BC){} 
} 

답변

0

당신은 연락처를 만들 테스트의 데이터를 채울 필요가 및 기타 귀하의 TalentIntegrationUtils 수준의 요구 사항을 객체하지만, 다음 코드를 테스트하는 작업을해야 :

string query = 'Select Id, LastName From Contact'; 
TalentIntCustomerBatch ticb = new TalentIntCustomerBatch(query); 
Database.executeBatch(ticb); 

클래스 이름에서 테스트 중에 외부 시스템으로 전화를 걸 수 있습니다. 이 경우 당신은 추가해야합니다 어느 쪽인가 "(거짓 Test.isRunningTest() ==)가"통화 아웃의 모든 주위 블록 또는 모의 응답 구현 :

Testing Web Service Callouts

Testing HTTP Callouts by Implementing the HttpCalloutMock Interface