この文章は 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 キー名定数をキーとして使用します。次の例では、アプリケーションコンテキストデータのアプリケーション名と、環境コンテキストデータのサブロケーションを設定します。
1swfobject.registerObject("clippy.codeblock-0", "9");
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17Map<String,String> appValues = new Map<String,String>();
18appValues.put(Canvas.Test.KEY_NAME,'AppName');
19
20Map<String,String> envValues = new Map<String,String>();
21envValues.put(Canvas.Test.KEY_SUB_LOCATION,'mobileDevice');
22
Canvas.Test で提供されるコンテキストキーの完全なリストは、『Force.com 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 インターフェースを使用して設定されます。
1swfobject.registerObject("clippy.codeblock-1", "9");
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17-@isTest
18global class MyCanvasLifecycleHandlerTest {
19
20    static testMethod void testDefaultMockValues(){
21        // Test handler using the default mock RenderContext Canvas.Test creates
22        MyCanvasLifecycleHandler handler = new MyCanvasLifecycleHandler();
23        Canvas.Test.testCanvasLifecycle(handler,null);
24    }
25
26    static testMethod void testOverriddenAppValues(){
27        // Test handler with some mock application context values
28        Map<String,String> appValues = new Map<String,String>();
29        appValues.put(Canvas.Test.KEY_CANVAS_URL,'https://myserver.com:6000/myAppPath');
30        appValues.put(Canvas.Test.KEY_VERSION,'3.0');
31        
32        Canvas.RenderContext mock = Canvas.Test.mockRenderContext(appValues,null);
33        MyCanvasLifecycleHandler handler = new MyCanvasLifecycleHandler();
34        Canvas.Test.testCanvasLifecycle(handler,mock);
35    }
36
37    static testMethod void testOverriddenEnvironmentValues(){
38        // Test handler with some mock environment context values
39        Map<String,String> envValues = new Map<String,String>();
40        envValues.put(Canvas.Test.KEY_DISPLAY_LOCATION,'Chatter');
41        envValues.put(Canvas.Test.KEY_LOCATION_URL,
42            'https://myinstance.salesforce.com/_ui/core/chatter/ui/ChatterPage');
43        MyCanvasLifecycleHandler handler = new MyCanvasLifecycleHandler();
44        Canvas.RenderContext mock = Canvas.Test.mockRenderContext(null,envValues);
45        // Directly update the mock RenderContext and set the custom parameters
46        mock.getEnvironmentContext().setParametersAsJSON(
47            '{\"one\":1,\"two\":2,\"bool\":true,\"stringVal\":\"some string\"}');
48        Canvas.Test.testCanvasLifecycle(handler,mock);
49    }
50
51}