2016-07-08 39 views
1
Class ABCD{ 

private int startProcess(String actualPath) { 
    Task<Integer> runDriverTask = new Task<Integer>() { 
    @Override 
    protected Integer call() throws Exception { 
     int exitCode = -1; 
     return 1; 
    } 
    }; 
    .... 
    .... 
} 

JUnitを記述して呼び出しメソッドを呼び出す方法をお勧めします。 私はコードカバレッジを行う必要がありますが、最大でcall()メソッドに到達することができません。 何が使えますか? Easockock、Power mock、Mockito、その他何か。匿名クラスのJunit

+0

'runDriverTask'をテストする必要がある場合は、それを別のクラスにリファクタリングする必要があります。しかし、 'startProcess(actualPath)'を十分にテストしていないのはなぜですか? – ck1

答えて

0

あなたの問題は、コントロールから完全に外れているものを制御したいということです。

あなたの「テスト中のコードは、」それが扱っているオブジェクトを作成します(あなたは「新しいWhateverClass」または「新しい匿名クラスのインスタンスてください」を行う場合、それは本当に問題ではありませんならば。

ので、もしあなたが制御を取得する必要があり、唯一の良い方法は、事前に作成したテストの下で、あなたのコードにオブジェクトを(なぜことを行う方法/詳細についてはhereを参照)を提供に依存性の注入を有効にすることです。

でそれに加えて、おそらくそのようなタスクを作成するファクトリを作成することができます。次に、f俳優;タスクを作成してそのプロパティを確認するだけです。