19

Eclipse と EclEmma を使用して、Java でコード カバレッジを取得しようとしています。

私のテストは JUnit 4 を使用しており、次のようなテストがいくつかあります。

    @Test(expected = IllegalArgumentException.class)
    public void createTime_withInvalidMinuteUnder0_throws(){
    //Arrange
    ...
    //Act
    Something triggering IllegalArgumentException Here       
}

そして、EclEmma は、IllegalArgumentException がスローされているため、テストが失敗したと述べています。そのため、何かをスローすることになっているにもかかわらず、コード カバレッジ インジケーターがドロップされます。JUnitが例外タグを期待していることを確認するオプションはありますか?

編集:スローをテストの宣言に追加すると、うまくいくことがわかりました!

4

3 に答える 3

21

いいえ、EclEmma にexpected節に気付かせる方法はありません。彼らはここでこの事実を認めます。

例外が予想される JUnit4 テスト ケースがカバーされていないと表示されるのはなぜですか?

例外が予想される JUnit4 テスト ケースは、実行されたにもかかわらず、カバーされていないと表示されます。この理由は、基礎となる JaCoCo コード カバレッジ ライブラリは、特定のプローブが実行されたときにのみコードが実行されたと見なすためです。これでマークされた成功したテスト ケース@Test{expected=...}の場合は当てはまりません。

個人的には、あまり気にする必要はありません。テスト ケースのカバレッジは、EclEmma が教えてくれる最も興味深いことではありません。私は常にこれらの指標を完全に無視し、本番コードのカバレッジに集中しています。

于 2012-10-06T07:39:47.127 に答える