[Salesforce]StandardSetControllerテストクラス

StandardSetControllerテストクラス

Apexクラス

/*
testページコントローラ
*/
public with sharing class testController {

    //testページへ渡す対象Idリスト
    public String testIdList { get;set; }

    //コンストラクタ
    public testController( ApexPages.StandardSetController controller ){

        //初期化
        List<test__c> testList = new List<test__c>();
        Set<Id> testIdSet = new Set<Id>();
        this.testIdList =  '';

        //testページで選択済みIdリスト取得
        for(test__c testObj : (List<test__c>) controller.getSelected()){
            testIdSet.add(testObj.Id);
        }

        //testページで選択済みリスト取得
        testList = gettestList(testIdSet);
        System.debug('testList.size() : ' + testList.size());

        //testページへ渡す対象Idリスト取得
        Integer cnt = 1;
        if(testList.size() > 0){
            for(test__c testObj : testList){
                if(cnt == 1){
                    this.testIdList += String.valueOf(testObj.id);
                }
                else{
                    this.testIdList += ',';
                    this.testIdList += String.valueOf(testObj.id);
                }
                cnt += 1;
            }
        }
        System.debug('this.testIdList : ' + this.testIdList);

    }

    //testページで選択済みリストからtestページへ渡す対象取得
    private List<test__c> gettestList(Set<Id> testIdSet){

        return [SELECT Id
                        , test__c  // test
                FROM
                    test__c
                WHERE
                    Id IN : testIdSet
                AND
                    test__c = 'test'
                ORDER BY Id
                ];

    }
}

Apexテストクラス

/*
testページコントローラテストクラス
*/
@isTest
private class testControllerTest {

    //正常ケース
    //対象レコード数:1件
    @isTest static void UnitTest1() {

        //testレコード作成
        List<test__c> testList = new List<test__c>();
        test__c test = inserttest();
        testList.add(test);

        // VisualForceのページリファレンスを取得
        PageReference prRef = Page.test;

        // カレントページにVisalForceページをセット
        Test.setCurrentPage(prRef);

        // テスト開始
        Test.startTest();

        // StandardSetControllerのコンストラクタ
        ApexPages.StandardSetController ssc = new ApexPages.StandardSetController(testList);
        ssc.setSelected(testList);
        testController bbController = new testController(ssc);

        // テスト終了
        Test.stopTest();

    }

    //正常ケース
    //対象レコード数:2件
    @isTest static void UnitTest2() {

        //testレコード作成
        List<test__c> testList = new List<test__c>();
        test__c test1 = inserttest();
        test__c test2 = inserttest();
        testList.add(test1);
        testList.add(test2);

        // VisualForceのページリファレンスを取得
        PageReference prRef = Page.test;

        // カレントページにVisalForceページをセット
        Test.setCurrentPage(prRef);

        // テスト開始
        Test.startTest();

        // StandardSetControllerのコンストラクタ
        ApexPages.StandardSetController ssc = new ApexPages.StandardSetController(testList);
        ssc.setSelected(testList);
        testController bbController = new testController(ssc);

        // テスト終了
        Test.stopTest();

    }

    //異常ケース
    //対象レコード数:0件
    @isTest static void UnitTest3() {

        //testレコード作成
        List<test__c> testList = new List<test__c>();
        test__c test = inserttest2();
        testList.add(test);

        // VisualForceのページリファレンスを取得
        PageReference prRef = Page.test;

        // カレントページにVisalForceページをセット
        Test.setCurrentPage(prRef);

        // テスト開始
        Test.startTest();

        // StandardSetControllerのコンストラクタ
        ApexPages.StandardSetController ssc = new ApexPages.StandardSetController(testList);
        ssc.setSelected(testList);
        testController bbController = new testController(ssc);

        // テスト終了
        Test.stopTest();

    }

    //testレコード作成
    //test:test
    private static test__c inserttest(){

        test__c  test = new test__c();
        test.Name = 'test';
        test.test__c = 'test';
        insert test;

        return test;

    }

    //testレコード作成
    //test:test以外
    private static test__c inserttest2(){

        test__c  test = new test__c();
        test.Name = 'test';
        insert test;

        return test;

    }
}

投稿者: kinkun

保有資格 Salesforce Certified Platform App Builder T Salesforce Certified Platform Developer I Salesforce Certified Platform Developer II Salesforce Certified Administrator

コメントを残す

メールアドレスが公開されることはありません。