HttpCalloutMock インターフェースの実装による HTTP コールアウトのテスト
HttpCalloutMock インターフェースを実装して respond メソッドで送信される応答を指定できるようにします。Apex ランタイムでこのメソッドをコールしてコールアウトへの応答を送信します。
擬似応答の値を指定したら、テストメソッドで Test.setMock をコールし、この擬似応答を送信するように Apex ランタイムに指示できます。次のように、第 1 引数では HttpCalloutMock.class を渡し、第 2 引数では HttpCalloutMock のインターフェース実装の新しいインスタンスを渡します。
これ以降で HTTP コールアウトがテストコンテキストで呼び出された場合、コールアウトは実行されず、respond メソッド実装で指定した擬似応答が受信されます。
次の詳細な例は、HTTP コールアウトのテスト方法を示しています。インターフェースの実装 (MockHttpResponseGenerator) が最初に記述されています。その後に、テストメソッドを含むクラスと、テストでコールするメソッドを含む別のクラスが続きます。testCallout テストメソッドは、getInfoFromExternalService をコールする前に Test.setMock をコールすることで擬似コールアウトモードを設定します。次に、返された応答が、実装された respond メソッドで送信した内容と同じであることを確認します。各クラスを個別に���存して、CalloutClassTest でテストを実行します。