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

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

  • このトピックには3件の返信、2人の参加者があり、最後にsweetieにより10年、 6ヶ月前に更新されました。
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件中)
  • このトピックに返信するにはログインが必要です。