2
3

More than 1 year has passed since last update.

【Salesforce】【資格】デベロッパー勉強メモ:テスト、デバッグ、リリース

Last updated at Posted at 2021-09-26

デベロッパー試験勉強時にまとめたメモ書きです。内容が間違っていたら優しくご指摘ください。
他投稿はデベロッパー試験に関する記事からどうぞ。

あくまでも個人のメモ書きなので信用しすぎてはいけません。
参考にSalesforce公式ページを載せていますので、最新かつ正しい情報をご確認ください。

Testクラスのメソッド

 clearApexPageMessages() Apex テストメソッドの実行中にVisualforceページのメッセージをクリアする
 getStandardPricebookId() 組織内の標準価格表のIDを取得する ★クエリの必要なし!!
 isRunningTest() テストメソッドに含まれているコードによってコールされた場合trueを返す
 loadData(sObjectToken, resourceName) 指定した静的リソースCSVファイルからsObjectのリストを取得する
 setContinuationResponse(requestLabel, mockResponse) テストメソッド内の継続HTTP要求に対する疑似応答を設定する
 setCreatedDate(recordId, createdDatetime) テストコンテキストレコードのCreatedDateを設定する
 setCurrentPage(page) Visualforceで使用されるコントローラの現在のPageReferenceを設定する
 setCurrentPageReference(page) Visualforceで使用されるコントローラの現在のPageReference を設定する
 startTest() テストが実際に開始されるときに、テストコードのポイントをマークします。
 stopTest() テストが終了するときに、テストコードのポイントをマークします。

startTest()とstopTest()はガバナ制限をテストする場合に使用する
例:98件のSOQLクエリを作成した場合
   →startTest後プログラムは追加で100件のクエリを作成できる
   →stopTest後は元のコンテキストに戻り、制限に達するまで追加できるSOQLクエリは2件だけになる

単体テストの考慮事項

・テストメソッドは、Webサービスコールアウトのテストには使用できない、疑似コールアウトを使用する
・テストメソッドからメールメッセージを送信することはできない
・テストメソッドはテストで作成したデータをコミットしない
・一意制約の項目を含む一部のsObjectでは、重複するレコードを挿入するとエラーになる

デバッグログ

・デバッグログの有効 →開発者コンソールまたは [設定] で追跡フラグを設定
 ※追跡フラグ=デバッグレベル、開始時刻、終了時刻、ログ種別
・デバッグログの対象
  データベースの変更
  HTTPコールアウト
  Apexエラー
  Apexが使用するリソース
  ワークフロールール
  割り当てルール
  承認プロセス
  検証ルール(入力規則)
  ※時間ベースワークフローのアクションは含まれない
・ログレベル
  (危険)ERRORーWARNーINFOーDEBUGーFINEーFINERーFINEST(安全)
  ※気にしすぎな人はFINESTを、あまり気にしない人はERRORを設定する
  ※INFO以下はDEBUG情報が出ない

開発者コンソール

・ログ表示 データベースイベント、Apex 処理、ワークフロー、および入力規則ロジックを含むデバッグログを検査できる
・チェックポイント チェックポイントを設定できる、実行を一時停止することはできない(実行後に確認する)
・Apex編集  Apexトリガおよびクラスを開いて編集できる
・Lightning編集 Lightning リソース (アプリケーション、コンポーネント、イベント、インターフェースなど) を開いて編集できる
・Visualforce編集 Visualforce ページを開いて編集できる
・Apexテスト コードカバー率のチェックし、単体テスト、機能テスト、回帰テストなどの Apex テストを実行できる
・SOQL・SOSLクエリ実行 結果は、[Query Results] に表示され、レコードの作成、更新、削除ができる

その他

・リリース時に「すべてのApexクラスとApexトリガの」のエラー → 既存テストクラスの実行
・SeeAllData=trueはテストクラスでデータを作成できない場合に使う(できるだけつかわない)
 ※ユーザ、プロファイル、組織、レコードタイプはSeeAllData=trueじゃなくても見れる
@futureはアサーションできない
・すべてのパラメータを使用して新しいコントローラをインスタンス化する
 controller.save().getUrl 戻り値はstring
・入力規則で落ちる場合 → テストクラス内で有効テストデータ作成する or 静的リソースから有効データを取得する
・テスト実行ができる場所 → 開発者コンソールTest、設定Apex テスト実行、Force.com IDEのRunTest

参考

↓Salesforce公式の開発者ガイドやヘルプページなどのリンクになっています
Testクラス
単体テスト
デバッグログ
開発者コンソール

デベロッパー試験に関する記事

Salesforce 認定 Platform デベロッパー 合格までのあれこれ
デベロッパー勉強メモ:Salesforceの基本
デベロッパー勉強メモ:データモデリング
デベロッパー勉強メモ:プロセスの自動化とロジック①
デベロッパー勉強メモ:プロセスの自動化とロジック②
デベロッパー勉強メモ:ユーザインタフェース
デベロッパー勉強メモ:テスト、デバッグ、リリース  ←当記事

2
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
3