How do I assert an IOException message with JUnit Test annotation?
当我使用@Rule和ExpectedException时,如下面的第1个(改编后的帖子)所示,我在(*)的Class2testTest类中得到错误"Unhandled Exception type"。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 | package class2test; import java.io.IOException; public class Class2test { public Class2test() throws IOException{ throw new IOException("j"); } } package test; import java.io.IOException; import org.junit.Rule; import org.junit.Test; import org.junit.rules.ExpectedException; import class2test.Class2test; public class Class2testTest { @Rule public ExpectedException expectedEx = ExpectedException.none(); @Test public void test() { expectedEx.expect(IOException.class); expectedEx.expectMessage("j"); new Class2test(); //(*) } } |
我不明白这一点:改编的帖子是可重现的(使用RuntimeException而不是IOException它可以工作)。
您应该在方法的签名中指定抛出的异常:
1 |