gpt4 book ai didi

java - 联合测试: Test multiple Exception

转载 作者:行者123 更新时间:2023-12-01 07:50:37 26 4
gpt4 key购买 nike

对于我的应用程序,我想检查一个抛出两个异常的函数。我想通过 JUnit 检查这些异常

这里是一个例子:

class MyFoo {
public void doSomeStuff(ArrayList<Object> objectList) {
if (objectList.size() >= 2) {
throw new IllegalArgumentException("");
}
if (objectList.size() == 0) {
throw new IllegalArgumentException("");
} else {
//do further Stuff
}
}
}

所以现在我想检查一下这个功能。我知道如何测试单个异常,但是有没有办法同时检查两个异常?或者在自己的测试中检查每个异常是否更好?

这里是一个异常的测试:

public class MyFooTest {

@Rule
public ExpectedException thrown= ExpectedException.none();


@Test
public void testDoSomeStuff() {
thrown.expect(IllegalArgumentException.class);
List<Object> objectList=new ArrayList<>();
objectList.add(new Object());
objectList.add(new Object());
objectList.add(new Object());
doSomeStuff(objectList);
}
}

可能我一次检查两个异常是完全错误的。那么介绍一下我吧。

最佳答案

我断言在两个不同的测试用例中抛出了正确的异常。

@Test(expected = IllegalArgumentException.class)
public void shouldThrowExceptionWhenListIsEmpty() {
doSomeStuff(Collections.emptyList());
}

@Test(expected = IllegalArgumentException.class)
public void shouldThrowExceptionWhenListIsBiggerThanTwo() {
doSomeStuff(Arrays.asList(new Object(), new Object(), new Object()));
}

如果一项约束发生变化,您只需更改一项测试。另一项保持不变。

关于java - 联合测试: Test multiple Exception,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38376123/

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