見出し画像

これは感動!VisualStudio CodeのSalesforce拡張機能が進化しているぞ

このところ、VisualStudio CodeのSalesfore拡張(Salesforce Extension Pack)の進化が止まらない。

デベロッパーとしてはとても嬉しいです。

これまで、Apexクラスのテストコードを書いて、それを実行するには以下のような感じでした。

コマンドパレットで、「SFDX: Apexテストを呼び出す」を実行

画像1

テストしたいテストクラスを選択

画像2

テスト実行

画像3

2020.4.16時点のSalesforce Extension Pack48.10.0になると、テストコード内にテストを実行するための表示が出現します。

@isTest
Run All Tests
class test_EventCalendar {
   static final String ACCOUNT_NAME = 'テスト取引先';
   static final String EVENT_SUBJECT = 'テスト行動';

   /**
    * テストセットアップ
    */
   @TestSetup
   static void setup(){
       // 取引先を作成する
       Account acc = new Account();
       acc.Name = ACCOUNT_NAME;
       insert acc;
       
       // 行動を作成する
       Event evt = new Event();
       evt.Subject = EVENT_SUBJECT;
       Date dtToday = Date.today();
       evt.StartDateTime = Datetime.newInstance(dtToday.year(), dtToday.month(), dtToday.day());
       evt.EndDateTime = Datetime.newInstance(dtToday.year(), dtToday.month(), dtToday.day());
       evt.WhatId = acc.Id;
       insert evt;
   }

   /**
    * 開始日と終了日の行動を取得するのテスト
    */
   @isTest
   Run Test
   static void test_getEvents() {
       // 今日の日付を取得する
       Date dtToday = Date.today();
       Datetime dtNow = Datetime.newInstance(dtToday.year(), dtToday.month(), dtToday.day());
       // 今月の開始日を設定する
       Date dtStart = Date.newInstance(dtToday.year(), dtToday.month(), 1);
       // 今月の終了日を設定する
       Date dtEnd = dtStart.addMonths(1).addDays(-1);

       List<Event> lstEvent = EventCalendar.getEvents(dtStart, dtEnd);

       // 行動が1件取得できたかをチェックする
       system.assertEquals(lstEvent.size(), 1, '行動の件数が1件ではありません');

       // 正しい行動が取得できたかをチェックする
       System.assertEquals(lstEvent[0].What.Name, ACCOUNT_NAME, '行動の件名が異なります');
       System.assertEquals(lstEvent[0].Subject, EVENT_SUBJECT, '行動の件名が異なります');
       System.assertEquals(lstEvent[0].StartDateTime, dtNow, '開始日付時刻が異なります');
       System.assertEquals(lstEvent[0].EndDateTime, dtNow, '終了日付時刻が異なります');
   }

   /**
    * 行動保存のテスト
    */
   @isTest
   Run Test
   static void test_saveEvent() {
       String event = '{"subject":"件名-Test","isallday":false,"startdatetime":"2020-04-16T08:00:00.000Z","enddatetime":"2020-04-16T09:00:00.000Z","location":"場所","description":"説明","isprivate":false}';

       EventCalendar.saveEvent(event);

       List<Event> lstEvent = [SELECT Id FROM Event WHERE Subject = '件名-Test'];

       System.assertEquals(lstEvent.size(), 1, '保存した行動が取得できません');
   }
}

Run All Test、Run Testが表示され、これをクリックするとテストが実行できます。

これは、めっちゃ楽!



この記事が気に入ったらサポートをしてみませんか?