salesforceのapexを初めて利用するものです。
salesforce上のレコードのフェーズが変更されたらslackに通知を飛ばすという機能を実装したいと思っております。
開発環境ではうまく言ったので本番にも同じ設定を使用としたところ、テストコードが必要で更にカバレッジ率が75%を超えていなければならないことを知りました。
そこからテストについて調査しているのですが、理解することが出来ません。。。
そもそもどこにテストを書いたらいいのかもわかりませんし、書き方も色々試したのですがどれも0%です。(別クラスを作成?もしくは同じクラス内に書く?)
本番環境にコードを送信して「検証」ボタンを押すところまでは到達しております。
テストをしたいのは下記のクラスです。(こちらの記事を引用してます。)
public class publishToSlackBasic{ public class slackRequest { @InvocableVariable(label='Slack Message' required=true) public String slackMessage; @InvocableVariable(label='Channel/User to post to' required=true) public String channel; } @InvocableMethod(label='Publish to Slack') public static void publishToSlack(List <slackRequest> requests) { String webhookURL='https://~~~'; // テスト用チャンネルに飛びます for(slackRequest r:requests){ JSONGenerator gen = JSON.createGenerator(true); gen.writeStartObject(); //Inserts { gen.writeStringField('text', r.slackMessage); //gen.writeStringField('channel', r.channel); //gen.writeStringField('username', 'Salesforce Bot'); // ボット名 //gen.writeStringField('icon_emoji', ':monkey_face:'); // ボットアイコン gen.writeEndObject(); //Inserts } String body = gen.getAsString(); //Translates JSONGenerator to string to be passed to callout System.debug(body); System.enqueueJob(new qCallOut(webhookURL, 'POST', body)); } } public class qCallOut implements System.Queueable, Database.AllowsCallouts { private final String url; private final String method; private final String body; public qCallOut(String url, String method, String body) { this.url = url; this.method = method; this.body = body; } public void execute(System.QueueableContext ctx) { HttpRequest req = new HttpRequest(); req.setEndpoint(url); req.setMethod(method); req.setBody(body); Http http = new Http(); HttpResponse res = http.send(req); } } }
記事の中ではテストコードも書かれているので同じ手順で登録しておきましょう
と書いてあるのですが、どこの部分を言っているのでしょう?
お手数おかけしますがよろしくお願いいたします。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/06/24 00:08
2021/06/24 02:19