java - 仅当抛出 6 IllegalArgumentException 时,我才需要 JUnit 传递

标签 java exception junit illegalargumentexception

每个语句 new M#().multiply(-1) 都会抛出 IllegalArgumentException。现在,如果至少抛出 1 个异常,则通过。仅当每个语句 new M#().multiply(-1) 抛出异常时,我才需要此传递。

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

@Test
public void test(){

    exception.expect(IllegalArgumentException.class);
    exception.expectMessage("Integers must be positive");

    new M1().multiply(-1);
    new M2().multiply(-1);
    new M3().multiply(-1);
    new M4().multiply(-1);
    new M5().multiply(-1);
    new M6().multiply(-1);

}

我已经为此工作太久了,请帮忙。

最佳答案

首先,我认为单元测试不应该这样做。您可以简单地创建 6 个测试,每个测试创建一个不同的类对象并期望出现异常。

但是,对于这种情况,您可以捕获 IllegalArgumentException 并计算它们发生的次数:

int exceptionCount = 0;
try {
    new M1().multiply(-1);
} catch(IllegalArgumentException ex) {
    exceptionCount++;
}
try {
    new M2().multiply(-1);
} catch(IllegalArgumentException ex) {
    exceptionCount++;
}
...
Assert.assertEquals(exceptionCount, 6);

关于java - 仅当抛出 6 IllegalArgumentException 时,我才需要 JUnit 传递,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26720795/

相关文章:

android - 我将 ui automator 与 android Junit4 一起使用,但我得到了一个 nullPointerException

junit - 如何使用 junit 的 assertThat 检查列表是否仅包含某些不相关的类类型?

java - 如何使用 maven-publish gradle 插件附加 AAR 文件的源代码?

java - JPA 查询集合中的 bean 字段

exception - 定义和捕获异常

java - URLClassLoader 未加载资源

java - 在单元测试中我应该进行多少对象初始化?

java - 原始值转换

java - 无法将 String 解析为 Date 对象

c++ - 内存释放和异常