gpt4 book ai didi

java - 如果抛出 JUnit ExpectedException 后如何继续测试?

转载 作者:太空狗 更新时间:2023-10-29 22:54:56 26 4
gpt4 key购买 nike

我已经设置了一些具有 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");
}

最佳答案

你不能那样做,当抛出异常时,它是真的抛出,ExpectedException 规则与否。

如果你真的想要这种行为,你可以回到“老派”模式:

try {
userService.createUser("toto1");
Assert.fail("expecting some AlreadyExistsException here")
} catch (AlreadyExistsException e) {
// ignore
}

log.info("3");

但我不会为一些日志而烦恼。

关于java - 如果抛出 JUnit ExpectedException 后如何继续测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35833116/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com