【问题标题】:IllegalArgumentException in parameterized test class参数化测试类中的 IllegalArgumentException
【发布时间】:2016-07-01 10:49:16
【问题描述】:

我有一个参数测试类,并且我有一个测试方法,我应该返回 IllegalArgumentException。

@RunWith(value = Parameterized.class)
public class TriangleParametrizedTest {

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

    enum Type {
        EQUILATERAL,
        NEGETIVE
    };

    private Type type;

    private int sideA;
    private int sideB;
    private int sideC;

    public TriangleParametrizedTest(Type type, int sideA, int sideB, int sideC) {
        this.type = type;
        this.sideA = sideA;
        this.sideB = sideB;
        this.sideC = sideC;
    }

    @Parameters()
    public static Collection<Object[]> data() {
        return Arrays.asList(new Object[][]{
            {Type.EQUILATERAL, 5, 5, 5},
            {Type.NEGETIVE, -5, 5, 5},});
    }

    @Test()
    public void negetiveSideTest() {
        Assume.assumeTrue(type == Type.NEGETIVE);
        exception.expect(IllegalArgumentException.class);
        Triangle trianle = new Triangle(sideA, sideB, sideC);

    }

}

但我遇到了这个错误: 初始化错误:没有找到匹配方法 negetiveSideTest 的测试 ..

有人有解决办法吗?

【问题讨论】:

    标签: rules illegalargumentexception parameterized-unit-test parameterized-tests


    【解决方案1】:

    当你使用@Test注解标记你的测试函数时,不应该有括号,像这样:

    @Test   <--- Remove the parenthesis here
    public void negetiveSideTest() {
        Assume.assumeTrue(type == Type.NEGETIVE);
        exception.expect(IllegalArgumentException.class);
        Triangle trianle = new Triangle(sideA, sideB, sideC);
    }
    

    @Parameters 声明也是如此。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-02-21
      • 2018-10-01
      • 2019-01-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多