我对 JUnit 理论很陌生。我有一个 parse() 方法,它接受一个 html 字符串作为输入并返回一个文档(HTML 文档的 DOM)
public Document parse(final String inputString) throws IllegalArgumentException {
if (StringUtil.isBlank(inputString))
throw new IllegalArgumentException("Input HTML String is empty,blank or null");
return Jsoup.parse(inputString, "", Parser.xmlParser());
}
我想使用 Junit 理论为此编写单元测试。我要检查的边界情况是:
- 空字符串
- 空白字符串(带空格的字符串)
- 空字符串
- 非 Html 字符串
- 有效的 HTML 字符串
如果是前 3 个,它应该抛出一个 IllegalArgumentException。在最后 2 个的情况下,它返回一个有效的文档对象。我已经能够为前 2 个编写测试。但我不确定如何使用 Junit Theories 测试最后 3 个。
这是我到目前为止所拥有的:
@Rule
public ExpectedException thrown = ExpectedException.none();
@DataPoints
public static String[] function(){
return new String[]{
""," ",null
};
}
@Theory
public void test(String s) {
System.out.println("called");
if(s==null)
System.out.println("null");
System.out.println(s.length());
thrown.expect(IllegalArgumentException.class);
htmlAssessment.parse(s);
}
出于某种原因,没有为参数 String = null 调用测试方法。有人可以帮我测试最后三个案例吗?
控制台输出:
called
0
called
1