結論
Apexテスト実行時だけコードを実行したい場合↓
if(Test.isRunningTest()){
//テスト時だけ実行したい処理
}
Apexテスト実行時だけコードをスキップしたい場合↓
if(!Test.isRunningTest()){
//テスト時だけスキップしたい処理
}
テスト時だけコード実行のユースケース
・catch文のテスト&カバレッジ確保のためにカスタムでエラーを投げたい場合
・テスト時にのみ求められる謎のValidationなどをカバーするためのデータの準備が必要な場合
テスト時だけコードスキップのユースケース
・実行したいコードがコード外部の世界(外部システムの処理や現実世界の時間)に依存していて、テストクラス内で用意するテストデータやモッククラスでは絶対に再現不可能である場合
・テストクラスでのみ特殊なValiadtionがかかる場合(例えば、B2B Commerce Cloudの「注文」レコードは「価格表への参照なく作成可能」かつ「絶対に参照があってはならない」が、テストクラスでは注文レコードの作成時に価格表への参照がないとエラーが発生してしまう。)
・テスト時に実行したくない処理がある場合(例えば、外部システムのマスタデータに変更を加える処理などがある場合、スキップしないとデータの不整合が発生してしまう。)