ReportsConnectでの帳票出力テストクラスの書き方

ホーム 掲示板 ReportsConnect for Salesforce ReportsConnectでの帳票出力テストクラスの書き方

このトピックは 2 発言者 で 3 件の返信 、  sweetie 10 年 前 に最終更新されました。

4投稿中1~4 4件表示
  • 作成者
    投稿
  • #107

    HNagatomi
    参加者

    旧掲示板からお世話になっております。現在ReportsConnectの採用を検討中です。
    ReportsConnectによるPDF出力の実装方法については理解できましたが、
    Salesforceのカバレッジテストを実行するためのテストクラスの書き方が分かりません。

    goPrint()を呼出しているところで、以下のエラーとなり、テストがスキップされてしまいます。
    「TestMethod として定義されたメソッドは、Web サービスコールアウトをサポートしないため、テストはスキップされます。」

    恐れ入りますが、テストクラスの書き方についてご教授いただけないでしょうか。
    何卒、よろしくお願い致します。

    なお、長くなりますが、当該箇所のApexデバッグログを以下に引用させていただきます。

    [Apexデバッグログ]

    11:20:19.171 (2171497078)|METHOD_EXIT|[109]|01pN0000000DkIc|PrintOneProInspSskCtrl.goPrint()
    11:20:19.171 (2171504180)|SYSTEM_MODE_EXIT|false
    11:20:19.171 (2171519512)|CONSTRUCTOR_EXIT|[281]|01pN0000000DkIc|<init>()
    11:20:19.171 (2171667954)|FATAL_ERROR|System.TypeException: TestMethod として定義されたメソッドは、Web サービスコールアウトをサポートしないため、テストはスキップされます。
     :
    (kpsr)

    Class.PrintOneProInspSskCtrl.goPrint: line 223, column 1
    Class.PrintOneProInspSskCtrl.<init>: line 109, column 1
    Class.PrintOneProInspSskCtrlTest.myUnitTest: line 281, column 1
    11:20:19.171 (2171684951)|FATAL_ERROR|System.TypeException: TestMethod として定義されたメソッドは、Web サービスコールアウトをサポートしないため、テストはスキップされます。

    (kpsr)
     :
    以上です

    #109

    sweetie
    参加者

    ReportsConnectControllerのgoReportメソッドの内部ではcalloutを行っていますので、Test時に、その先の処理をTestしたい場合は、Test実行中かどうかをコードの中で判断して、Test実行中の場合は、goReportメソッドを迂回するようにしてください。

    Test実行中かどうかを判断するには、Test.isRunningTest() で判断できます。

    #110

    HNagatomi
    参加者

    早々のご回答をいただきまして、まことにありがとうございました。

    ご回答にございました goReport() は、goPrint() と判断して、
    ご指摘通り、Test.isRunningTest()で false が返った時のみ
    goPrint()を実行するように修正したところ、無事カバレッジテスト
    を通すことができました。

    こちらの勉強不足でお手数をお掛け致しました。
    重ね重ね、ありがとうございました。

    #111

    sweetie
    参加者

    失礼しました、goReport() ではなくてgoPrint() の間違いでした。

4投稿中1~4 4件表示

このトピックに返信するためにはログインしなければなりません。