Метод запуска класса Apex не запущен - PullRequest
0 голосов
/ 13 марта 2012

у меня есть пакетный класс апекса

 global class apexBatch implements Database.Batchable<sObject>{
 global final string query;
List<user>  lstUser= new List<user>();
Set<id>     setUserID= new Set<id>();



//constructor
global apexBatch () {
    if (system.Test.isRunningTest())
    {
        this.query='SELECT id FROM user limit 100';
    }
    else
    {
        this.query='SELECT id FROM user ;
    }
}


global Database.QueryLocator start(Database.BatchableContext BC) {

    return Database.getQueryLocator(query);
}

global void execute(Database.BatchableContext BC, List<sObject> scope) {

// do some processing


}

global void finish(Database.BatchableContext BC) {

}

Я вызываю этот класс из тестового класса, используя этот код

       Test.startTest(); 
    apexBatch ba = new apexBatch();

    Database.executeBatch(ba);
      Test.stopTest();

Когда я проверяю покрытие кода, я вижу только то, чтоконструктор покрыт, методы start и execute не покрыты вообще.

Любая идея, что может вызвать это

Спасибо

1 Ответ

2 голосов
/ 13 марта 2012

Есть ли исключения в вашем журнале отладки при запуске тестов?Это тот же самый метод, который я использую для тестирования пакетных классов, поэтому я взял этот код (я знаю, что он упрощен), добавил недостающую закрывающую кавычку во второй запрос (я предполагаю, что ваш код сохранился правильно, и это не проблема!) и поместите тестовый код в класс, достаточно уверенно, чтобы он правильно покрывал код пакета.

Наконец, в последнее время я видел некоторые странные проблемы с отчетами о покрытии тестов - как вы сейчас выполняете тесты?Я просто запустил все тесты в организации и получил 90% покрытия (по понятным причинам он пропустил вторую строку запроса).

...