テストクラスの中で直接、対象のクラスをDatabase.executeBatchに渡して実行がそもそも正解ではありませんか?
「Apex開発者ガイド」の「Apex の一括処理の使用」というページに、「Apex の一括処理のテスト」という記述がありますが、そこだと、Database.executeBatchをテストコードに書く例があります。
追記
コードとしては以下のようなイメージかと思います。
//バッチを呼び出すクラス
public class testexecuteBatch{
//ボタン契機?スケジュール?か分からないけど、バッチを呼び出すメソッド
public void kickBatch(){
nextCreate cls = new nextCreate();
Database.execute(cls);
}
//バッチ処理のクラス
public class nextCreate implements Database.Batchable<sObject> {
global Database.querylocator start(Database.BatchableContext BC){
return Database.getQueryLocator('SELECT Id FROM Account');
}
global void execute(Database.BatchableContext BC, List<sObject> scope){
//バッチの処理などなど
}
global void finish(Database.BatchableContext BC){
}
}
このときのtestexecuteBatchのテストの書き方ですが、単純にテストしたいクラス・メソッドをstartTest,stopTestではさんであげればよいかと思います。
@isTest
public class testexecuteBatch{
@isTest private void unitTest01(){
Test.startTest();
testexecuteBatch cls = new testexecuteBatch();
cls.kickBatch();
Test.stopTest();
}
}
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/06/21 04:19
2017/06/21 04:38 編集
2017/06/21 04:47
2017/06/21 05:04
2017/06/21 05:34
2017/06/21 05:59
2017/06/21 06:02
2017/06/21 06:17
2017/06/21 06:56
2017/06/21 07:16