System.currentPageReference().getParameters().get('hogehoge');をクラスで使用している場合のテストクラスの書き方です。
引数がきちんとしていないとカバレッジが確保できませんし、正しいテストが出来ませんね。
でもテストコードにURLパラメータをどうやって渡すのでしょうか。
メインのクラスのソースはこんな感じ。
-
public class SampleCls {
-
public Id sampleId{get;set;}
-
public PageReference init() {
-
sampleId = System.currentPageReference().getParameters().get('ParameterId');
-
//パラメーターを使った処理
-
return null
-
}
-
}
テストコード側には、setCurrentPageを入れることで引数を設定できます。
-
private class SampleCls_Test{
-
static testmethod void Test() {
-
System.Test.startTest();
-
PageReference pageRef = Sample_Page;//SampleClsをコントローラーに持つページ
-
//URLパラメータをセットします
-
pageRef.getParameters().put('ParameterId', 'aaaaaaaaaaaa');
-
//TestクラスのsetCurrentPageメソッドを使用してCurrentPageにパラメータを設定します。
-
Test.setCurrentPage(pageRef);
-
SampleCls cls;
-
cls.init();
-
System.test.stopTest();
-
}
-
}
これでテストクラスを実行するとURLパラメータが入った状態でクラスが実行されます。
その他のSalesforce記事
VisualforceでcommandButtonにrerender属性を設定して、 oncompleteにコールバック処理を記載したら動作してくれない。