I’m trying to get my code coverage in java, using Eclipse and EclEmma.
My tests are using JUnit 4 and I’ve got some tests looking like this :
@Test(expected = IllegalArgumentException.class)
public void createTime_withInvalidMinuteUnder0_throws(){
//Arrange
...
//Act
Something triggering IllegalArgumentException Here
}
And EclEmma says that the test fails because there’s an IllegalArgumentException being thrown. So it drops my code coverage indicator even though it’s supposed to throw something. Is there an option to make it see that JUnit expected exception tag ?
edit: I’ve found out that if you add the throw to the declaration of the test aswell, it works!
No, there is no way to get EclEmma to notice the
expectedclause. They acknowledge this fact here.Personally, I wouldn’t worry too much about it. Coverage of test cases is the least interesting thing EclEmma can tell you; I always completely ignore those metrics and focus on the coverage of my production code.