Salesforce 为批处理创建测试类

Salesforce 为批处理创建测试类,salesforce,apex-code,visualforce,apex,test-class,Salesforce,Apex Code,Visualforce,Apex,Test Class,我正在让truble为这个特殊的类创建一个测试类。如果有人能提供一些代码来实现这一点,我将非常感激 非常感谢 类别: global class TalentIntCustomerBatch implements Database.Batchable<sObject>, Database.AllowsCallouts{ global final String query; global TalentIntCustomerBatch(String q){

我正在让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){}
}

您将需要在测试中填充数据,以创建TalentIntegrationUtils类所需的联系人和任何其他对象,但以下代码应可用于测试它:

string query = 'Select Id, LastName From Contact';
TalentIntCustomerBatch ticb = new TalentIntCustomerBatch(query);
Database.executeBatch(ticb);
根据您的类名,您可能在测试期间调用外部系统。如果是这种情况,则需要在所有调用周围添加If Test.isRunningTest==false块,或者实现模拟响应: