3

プライベート メソッドがストリームを閉じることを確認する単体テストを作成しています。

単体テストは methodB を呼び出し、変数 something は null です

単体テストはテストでクラスをモックしません

プライベート メソッドは、私が呼び出しているパブリック メソッド内にあります。

Eclipse で emma を (eclemma プラグイン経由で) 使用すると、メソッド内のコードがカバーされていなくても、メソッド呼び出しがカバーされていないと表示されます。

例えば

public methodA(){

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

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

メソッド呼び出しが対象として強調表示されないのはなぜですか?

4

2 に答える 2

2

EMMA の Eclipse プラグインには非常にバグがあり、あなたが説明したものと同様の経験があることがわかりました。EMMA を単独で (必要に応じて ANT を介して) 使用することをお勧めします。マージの混乱を避けるために、EMMA によって生成されたメタデータ ファイルを常に再生成するようにしてください (Eclipse プラグインに問題があると思われます)。

于 2008-09-16T14:01:51.010 に答える
0

「単体テストが呼び出すmethodB()」と言うときは、直接ではなく、経由ではないことを意味すると思いますmethodA()

methodB()それで、別の単体テストによって、またはおそらく他の場所で呼び出されている可能性はありmethodC()ますか?

于 2008-09-11T15:07:52.347 に答える