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