2008-09-11 6 views
3

プライベートメソッドがストリームを閉じることを確認するユニットテストを書いています。メソッド内のコードがemmaで覆われていると、メソッド呼び出しが表示されないのはなぜですか?

ユニットテストはmethodB呼び出し、変数の何かは、ユニットテストは、テスト

プライベートメソッドは、私が呼び出していますパブリックメソッド内で上のクラスを模擬しません

nullです。メソッド呼び出しがメソッド内のコードは

例えば

public methodA(){ 

    if (something==null) { 
     methodB(); //Not displayed as covered 
    } 
} 

private methodB(){ 
    lineCoveredByTest; //displayed as covered 
} 

なぜメソッドの呼び出しがないであろうにもかかわらず覆われていないとして表示される(eclemmaプラグインを介して)日食にエマを使用

カバーされていると強調表示されますか?

+0

メソッドBは正常に戻りますか? –

答えて

0

私はあなたが 'unit test calls methodB()'と呼ぶときは、直接ではなく、methodA()であることを意味します。

methodB()は、他のユニットテストやmethodC()の可能性がありますか?

2

私は、EMMA用のEclipseプラグインはかなりバグがあり、あなたが記述したものと似た経験をしていることが分かりました。必要に応じてANT経由でEMMAを単独で使用する方がよいでしょう。混乱(私はEclipseプラグインの問題であると思われる)をマージするのを避けるために、必ずEMMAによって生成されたメタデータ・ファイルを再生成してください。

関連する問題