設定ファイルの情報を使用する機能があります。関数をテストするにはどうすればよいですか?理想的には、独自のバージョンの構成ファイルを挿入してそこからテストしたいのですが、依存関係の挿入は使用していません。
構成ファイルから独立して機能するテストを作成する必要があるため、「シミュレートされた構成」に応じて、関数の出力またはその関数の動作が正しいことをテストできます。
構成ファイル、またはテスト対象の関数でシミュレートしようとしている値を挿入する必要があります。これは、その値がある場合は常に、関数の動作が構成ファイルによって示されることを保証する唯一の方法です。
理想的には、構成ファイルを含むクラスを分離し、構成ファイルの動作をこのファイルを読み取るクラス/関数に指示します。テストを作成するときの目標の1つは、テスト中のコードを分離することです。
構成ファイルからデータをロードする方法によって異なります。
理想的には、簡単にテストできるようにプログラムを記述し、不要な依存関係を減らします。したがって、設定ファイルの場所や形式を変更した場合でも、コードへの影響は最小限であることを確認してください。次に、コードがテストにも対応できることを確認します。
構成ファイルからのロードを処理する単一のオブジェクト、クラス、ファイル、または関数のセットがある場合は、それを変更して、構成ファイルを必要とせずに、プログラムで別の構成ファイルまたはスタブ変数だけを取得できるようにします。
構成ファイルを複数の場所にロードし、そのパスがハードコーディングされている場合は、少し難しくなります(あまり理想的ではない状況にもなります)。あなたがしようとすることができます:
pythonファイルで一連の値を定義し、それが自分の構成である場合、リファクタリング:構成ファイルを調整して、返される値を変更できるようにします。たとえば、ハードコードされた構成にデフォルトで設定値を返す関数の束。ただし、テストプログラム用に編集できます。
まあ、依存関係の注入は、構成テストへのデフォルトの並べ替えボックス化アプローチとして頭に浮かびます。
ただし、他にも方法があります。具体的には、構成ファイルへの依存をすべて排除するようにコードを設計することです。
詳細については、設定ファイルについて具体的に説明しているBrian Geihslerによる 依存関係の解消の標準的な例 を参照してください。