この文章は Salesforce 機械翻訳システムを使用して翻訳されました。詳細はこちらをご参照ください。
英語に切り替える

CanvasLifecycleHandler 実装のテスト

Canvas.Test クラスを使用して、キャンバスアプリケーションを実行せずに Canvas.CanvasLifecycleHandler.onRender() 実装をテストできます。

Canvas.Test を使用して、疑似アプリケーションおよび環境コンテキストデータで Canvas.RenderContext を作成します。疑似 RenderContext および CanvasLifecycleHandler 実装を使用して Canvas.Test.testCanvasLifecycle() をコールし、CanvasLifecycleHandler が正しく呼び出されることを確認します。

Canvas.Test.mockRenderContext() を使用して疑似 RenderContext を作成します。初期の疑似アプリケーションおよび環境コンテキストデータを指定するか、Canvas.Test でデフォルトの疑似データのセットを使用することができます。初期の疑似アプリケーションおよび環境コンテキストデータは 2 つのキー - 値ペアの対応付けで指定します。定義済みの Canvas.Test キー名定数をキーとして使用します。次の例では、アプリケーションコンテキストデータのアプリケーション名と、環境コンテキストデータのサブロケーションを設定します。
1Map<String,String> appValues = new Map<String,String>();
2appValues.put(Canvas.Test.KEY_NAME,'AppName');
3
4Map<String,String> envValues = new Map<String,String>();
5envValues.put(Canvas.Test.KEY_SUB_LOCATION,'mobileDevice');
Canvas.Test で提供されるコンテキストキーの完全なリストは、『Apex コード開発者ガイド』の「テスト定数」を参照してください。

疑似 RenderContext ができたら、RenderContext と CanvasLifecycleHandler を使用して Canvas.Test.testCanvasLifecycleHandler() をコールできます。このコールは、ハンドラの onRender() メソッドを呼び出し、疑似 RenderContext をコンテキストデータとして渡します。

次の例では、テストクラスで Canvas.Test を使用しています。テストクラスには 3 つのメソッドがあります。
  • testDefaultMockValues() は、デフォルトの Canvas.Test 疑似コンテキストデータを使用して MyCanvasLifecycleHandler を呼び出します。
  • testOverriddenAppValues() は、カスタム疑似 RenderContext と疑似アプリケーション URL およびバージョンアプリケーションコンテキストデータを使用して MyCanvasLifecycleHandler を呼び出します。
  • testOverriddenEnvironmentValues() は、カスタム疑似 RenderContext と疑似表示場所、場所 URL、およびカスタムパラメータ環境コンテキストデータを使用して MyCanvasLifecycleHandler を呼び出します。カスタムパラメータは、疑似 RenderContext が作成された後、Canvas.EnvironmentContext インターフェースを使用して設定されます。
1-@isTest
2global class MyCanvasLifecycleHandlerTest {
3
4    static testMethod void testDefaultMockValues(){
5        // Test handler using the default mock RenderContext Canvas.Test creates
6        MyCanvasLifecycleHandler handler = new MyCanvasLifecycleHandler();
7        Canvas.Test.testCanvasLifecycle(handler,null);
8    }
9
10    static testMethod void testOverriddenAppValues(){
11        // Test handler with some mock application context values
12        Map<String,String> appValues = new Map<String,String>();
13        appValues.put(Canvas.Test.KEY_CANVAS_URL,'https://myserver.com:6000/myAppPath');
14        appValues.put(Canvas.Test.KEY_VERSION,'3.0');
15        
16        Canvas.RenderContext mock = Canvas.Test.mockRenderContext(appValues,null);
17        MyCanvasLifecycleHandler handler = new MyCanvasLifecycleHandler();
18        Canvas.Test.testCanvasLifecycle(handler,mock);
19    }
20
21    static testMethod void testOverriddenEnvironmentValues(){
22        // Test handler with some mock environment context values
23        Map<String,String> envValues = new Map<String,String>();
24        envValues.put(Canvas.Test.KEY_DISPLAY_LOCATION,'Chatter');
25        envValues.put(Canvas.Test.KEY_LOCATION_URL,
26            'https://myinstance.salesforce.com/_ui/core/chatter/ui/ChatterPage');
27        MyCanvasLifecycleHandler handler = new MyCanvasLifecycleHandler();
28        Canvas.RenderContext mock = Canvas.Test.mockRenderContext(null,envValues);
29        // Directly update the mock RenderContext and set the custom parameters
30        mock.getEnvironmentContext().setParametersAsJSON(
31            '{\"one\":1,\"two\":2,\"bool\":true,\"stringVal\":\"some string\"}');
32        Canvas.Test.testCanvasLifecycle(handler,mock);
33    }
34
35}