私はインタープリターを開発しており、モデルを解釈する「実行」メソッドの内部テストを行いたいと考えています。実行メソッドには入力も出力もないため、メソッドをテストする唯一の方法 (少なくとも私が知っていることから) は、内部メソッド呼び出しをモックして、それらが正しい順序で実行されることを確認することです。
現在、次のクラスがあります。
ExecutableInstance
- 実行可能なモデル クラス。ExecutableInstanceFactory
- 実行可能なインスタンスを作成するシングルトン クラス (列挙型として実装)。指定されたパラメーターに応じて異なるメソッドを使用します。ModelAnalyzer
- モデルを分析するためのメソッドを含むシングルトン クラス
インタープリターはクラスのexecute()
メソッドを呼び出し、次に を呼び出して、モデル内の内部実行可能インスタンスを理解します。次に、 を使用して新しい を作成し、モデルの定義方法に応じてメソッドを呼び出します。ExecutableInstance
ModelAnalyzer
ExecutableInstance
ExecutableInstanceFactory
execute()
私の考えは、クラスをモックして、実行順序をテストできるExecutableInstanceFactory
モックを返すことです。ExecutableInstace
しかし、これは、 を に注入する必要があることを意味しExecutableInstanceFactory
ますExecutableInstance
。これはシングルトンなので、パラメーターとして渡すのはばかげています。DIにGoogleのGuiceを使用することを考えました...しかし、これをやろうとして立ち往生しています。
私の方向は正しいですか?もしそうなら、これはどのように実装されるべきですか?