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にコールバック処理を記載したら動作してくれない。

