こんにちは、管理人の@Salesforce.Zです。
Salesforceの標準コントローラーを使ったら、いろいろ楽なところもあるでしょう
しかし、その標準コントローラークラスのテストクラスを書く時に、ページのパラメータ設定などもあり
どう書けばいいか一時的に迷ってしまうことがありませんか
今回、この標準コントローラークラスのテストクラスを書くテンプレートを共有します。
読んだら得ること
★ 標準コントローラークラスのテストクラスの作成
目次
標準コントローラークラスを使用する例
VF側
<apex:page standardController="Account" extensions="yourControllerExtension"> {!greeting} <p/> <apex:form> <apex:inputField value="{!account.name}"/> <p/> <apex:commandButton value="Save" action="{!save}"/> </apex:form> </apex:page>
APEX側
public class yourControllerExtension { public Id parentId; private final Account acct; public myControllerExtension(ApexPages.StandardController stdController) { this.acct = (Account)stdController.getRecord(); parentId = ApexPages.currentPage().getParameters().get('Id'); Account Rec = [SELECT id FROM Account WHERE Id =: parentId ]; } public String getGreeting() { return 'Hello ' + acct.name + ' (' + acct.id + ')'; } }
テストクラス
private class yourControllerExtensionTest { static testMethod void your_Test(){ PageReference your_page = Page.yourpagename; Test.setCurrentPage(your_page); your_page.getParameters().put('Id' , 'xxxxxxxxxxxxxxx' ); Account acc = new Account(); ApexPages.StandardController sc = new ApexPages.StandardController(acc); Test.startTest(); yourControllerExtension your_ctrl = new yourControllerExtension (sc); Test.stopTest(); } }
終わりに
非常にシンプルなあと思って、あまり解釈を入れていないです。