私はあなたの質問を完全に理解しているかどうかわかりませんが、
テスト戦略について考える
言い換えれば、どのシナリオで何をテストしているのか (システム全体、このモジュール/クラス/関数/その他) を知る必要があります (無効な入力を与えたとき、ユーザーがこれを行ったとき、それからあれを行ったとき、など) そして、そのテストが考慮されるほど重要である理由 (一般的な用途であり、境界条件をテストするなど)。
ウィキペディアのソフトウェア テストに関する記事の「テスト方法」と「テスト レベル」のセクションは、必要なテストの種類を判断するのに役立つと思います。
テストはまだコードです
アプリケーション コードと同じレベルのエンジニアリング品質でテストを維持する必要があります。その点で、問題を解決するのに役立つすべてのパターンを適用してください。
ビルドをそのまま使用
個人的には、テストのためだけに秘密の突く穴を作るのは、いくつかの理由から悪い考えだと思います。ほんの数例を挙げると:
微妙な方法で想定される相互作用を確実に再現できない可能性があります。「テスト ショートカット」は、通常のユーザーとまったく同じものをトリガーしない場合があります。コードとテストに変更をコミットするたびに、バイパスしているもの (およびその影響) を 100% 確実に把握する必要があります。
テストには優れた設計が必要です。何かをテストするのが面倒なら、設計に疑問を抱くことを考えたことはありますか? 何かをテストするということは、スクリプト化された方法でそれを使用することです。製品を使用することは苦痛であってはなりません。(ただし、テストのスクリプト作成は、一部の環境では苦痛になる場合があります。はい、承知しています。) これは、特に単体テストに当てはまります。
不注意なプログラマーが、テスト ショートカットを実際の正当な通常のユース ケースに変えるのは良い考えだと考える可能性は常にあります。特に、コードの一部が残りのコードと同じように徹底的に考え抜かれていると想定している場合 (通常はそうではありません)、これにはすべてが当てはまります。