繁体   English   中英

在方法中使用多个测试用例进行JUnit测试

[英]JUnit testing with multiple test cases in a method

我有一个以下的类A与一个构造函数,它接受两个字符串作为参数。

Class A
{
String test1;
String test2;

    public(String test1, String test2)
    {
    this.test1 = test1;
    this.test2 = test2;
    }
}

我想在一个测试用例方法中测试一个带有三个测试用例的构造函数,即1. Null test1 2. Null test2 3. Null test1,Null test2

String test1 = "ABC";
String test2 = "XYZ";
@Test(expected=NullPointerException.class)
public void testNullConstructorValues() {
       new A(null, test2);
       new A(test1, null);
       new A(null, null);
}

这里的问题是,在第一次构造函数声明之后,该方法抛出NPE并返回该方法。 我希望该方法只在一个方法中执行所有3个构造函数声明并执行预期的异常检查。

有没有办法在一个方法中完成所有3个测试用例?

使用参数化的跑步者测试。

@RunWith(Parameterized.class)
public class ATest {
    private String value1;
    private String value2;

    private static final String ABC = "abc";
    private static final String XYZ = "xyz";

    public ATest(String value1, String value2) {
        this.value1 = value1;
        this.value2 = value2;
    }

    @Test(expected=NullPointerException.class)
    public void nullPassedToConstructor() {
         A a = new A(value1, value2);
    }

    // Provide data
    @Parameters
    public static List<Object[]> data() {
    List<Object[]> list = new ArrayList<Object[]>();

        list.add(new Object[] {null, XYZ});
        list.add(new Object[] {ABC, null});
        list.add(new Object[] {null, null});

        return list;
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM