【Salesforce 認定Platformデベロッパー】試験対策:第144問

問題

開発者が、カスタムコントローラでカスタム例外が正しく機能することを確認するために単体テストを書きましたが、例外がスローされたためにテストが失敗しました。
この問題を解決し、例外を適切にテストするために、開発者が取るべき手順はどれでしょうか。

  • 単体テスト内でtry/catchを使用して例外をキャッチする
  • 単体テスト内でfinallyブロックを使用して、例外を投入する
  • データベースメソッドを、allまたはnoneをFALSEに設定して使用する
  • カスタムコントローラ内でTest.isRunningTest()を使用する

正解

  • 単体テスト内でtry/catchを使用して例外をキャッチする
  • 単体テスト内でfinallyブロックを使用して、例外を投入する
  • データベースメソッドを、allまたはnoneをFALSEに設定して使用する
  • カスタムコントローラ内でTest.isRunningTest()を使用する

解説

それぞれの選択肢の理由について説明します。

□ 単体テスト内でtry/catchを使用して例外をキャッチします
これは正解です。単体テスト中に例外がスローされることを期待する場合、try/catchブロックを使用してその例外をキャッチすることで、テストが失敗するのを防ぐことができます。例外が正しくスローされることを確認するためには、catchブロック内でアサーションを使用することが一般的です。

□ 単体テスト内でfinallyブロックを使用して、例外を投入します
これは不正解です。finallyブロックは、tryまたはcatchブロックの後に実行されるブロックで、例外が発生したかどうかに関係なく実行されます。例外を投入するためにfinallyブロックを使用することは、一般的な使用法ではありません。

□ データベースメソッドを、allまたはnoneをFALSEに設定して使用する
これは不正解です。allOrNoneパラメータは、データベース操作が部分的に成功した場合に、全体をコミットするかロールバックするかを制御します。このパラメータは例外のテストとは直接関係がありません。

□ カスタムコントローラ内でTest.isRunningTest()を使用する
これは不正解です。Test.isRunningTest()メソッドは、現在のコードがテスト実行中かどうかを判断するために使用されます。これを使用して例外の動作を変更することは、実際の動作とテスト動作の間に差異を生じさせる可能性があり、推奨されません。

次の問題へ

前の問題へ

1問目から復習する

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

雇われのシステムエンジニアです。
普段は車載ECUのセキュリティー分野に従事しております。

コメント

コメントする

このサイトはreCAPTCHAによって保護されており、Googleの プライバシーポリシー利用規約が適用されます。

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

目次