回答編集履歴

1

コードを追記しました。

2017/06/21 05:57

投稿

nabeyaki
nabeyaki

スコア116

test CHANGED
@@ -3,3 +3,97 @@
3
3
 
4
4
 
5
5
  [「Apex開発者ガイド」の「Apex の一括処理の使用」というページ](https://developer.salesforce.com/docs/atlas.ja-jp.apexcode.meta/apexcode/apex_batch_interface.htm)に、「Apex の一括処理のテスト」という記述がありますが、そこだと、Database.executeBatchをテストコードに書く例があります。
6
+
7
+
8
+
9
+ ---
10
+
11
+ 追記
12
+
13
+ コードとしては以下のようなイメージかと思います。
14
+
15
+
16
+
17
+ ```ここに言語を入力
18
+
19
+ //バッチを呼び出すクラス
20
+
21
+ public class testexecuteBatch{
22
+
23
+ //ボタン契機?スケジュール?か分からないけど、バッチを呼び出すメソッド
24
+
25
+ public void kickBatch(){
26
+
27
+ nextCreate cls = new nextCreate();
28
+
29
+ Database.execute(cls);
30
+
31
+ }
32
+
33
+ ```
34
+
35
+
36
+
37
+ ```ここに言語を入力
38
+
39
+ //バッチ処理のクラス
40
+
41
+ public class nextCreate implements Database.Batchable<sObject> {
42
+
43
+ global Database.querylocator start(Database.BatchableContext BC){
44
+
45
+ return Database.getQueryLocator('SELECT Id FROM Account');
46
+
47
+ }
48
+
49
+
50
+
51
+ global void execute(Database.BatchableContext BC, List<sObject> scope){
52
+
53
+ //バッチの処理などなど
54
+
55
+ }
56
+
57
+
58
+
59
+ global void finish(Database.BatchableContext BC){
60
+
61
+ }
62
+
63
+ }
64
+
65
+ ```
66
+
67
+
68
+
69
+ このときのtestexecuteBatchのテストの書き方ですが、単純にテストしたいクラス・メソッドをstartTest,stopTestではさんであげればよいかと思います。
70
+
71
+
72
+
73
+ ```ここに言語を入力
74
+
75
+ @isTest
76
+
77
+ public class testexecuteBatch{
78
+
79
+ @isTest private void unitTest01(){
80
+
81
+ Test.startTest();
82
+
83
+
84
+
85
+ testexecuteBatch cls = new testexecuteBatch();
86
+
87
+ cls.kickBatch();
88
+
89
+ Test.stopTest();
90
+
91
+
92
+
93
+ }
94
+
95
+ }
96
+
97
+
98
+
99
+ ```