Dea*_*iny 16 java junit4 expected-exception junit-rule
我已经使用ExpectedException功能设置了一些JUnit(4.12)测试,我希望测试在预期的异常之后继续.但是我从来没有看到日志'3',因为执行似乎在异常后停止,如果捕获事件?
这实际上是可能的,怎么样?
@Rule
public ExpectedException exception = ExpectedException.none();
@Test
public void testUserAlreadyExists() throws Exception {
log.info("1");
// Create some users
userService.createUser("toto1");
userService.createUser("toto2");
userService.createUser("toto3");
Assert.assertTrue( userService.userExists("toto1") );
Assert.assertTrue( userService.userExists("toto2") );
Assert.assertTrue( userService.userExists("toto3") );
log.info("2");
// Try to create an existing user
exception.expect(AlreadyExistsException.class);
userService.createUser("toto1");
log.info("3");
}
Run Code Online (Sandbox Code Playgroud)
小智 13
你不能这样做,当抛出异常时,它是真实的,ExpectedException规则与否.
如果你真的想要这种行为,你可以回到"旧学校"模式:
try {
userService.createUser("toto1");
Assert.fail("expecting some AlreadyExistsException here")
} catch (AlreadyExistsException e) {
// ignore
}
log.info("3");
Run Code Online (Sandbox Code Playgroud)
但我不打扰一些日志.