为批处理顶点创建测试类

时间:2014-11-17 13:04:15

标签: salesforce apex-code visualforce apex test-class

我正在为这个特定的类创建一个测试类。如果有人能提供一些可以实现这一点的代码,我将非常感激。

非常感谢

类别:

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){}
}

1 个答案:

答案 0 :(得分:0)

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

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

从课程名称开始,您可能会在测试期间呼叫外部系统。如果是这种情况,您将需要在所有调用周围添加“if(Test.isRunningTest()== false)”块或实现模拟响应:

Testing Web Service Callouts

Testing HTTP Callouts by Implementing the HttpCalloutMock Interface