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

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

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

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

コマンドパレットで、「SFDX: Apexテストを呼び出す」を実行
テストしたいテストクラスを選択
テスト実行

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が表示され、これをクリックするとテストが実行できます。

これは、めっちゃ楽!