我想为此方法编写一个junit测试用例
{{1}}
我知道通常不会测试void方法,但这有一些额外的逻辑值得测试。
答案 0 :(得分:0)
我知道无效方法通常不会经过测试
那是...不是真的。
为该link
字段添加吸气剂。您可以根据需要将其打包为私有(根本没有访问修饰符),甚至可以用@ForTesting
对其进行记录。现在,您可以测试您的方法是否根据需要修改了链接(如果这是您的真实代码,则测试将失败;您根本不会更改路径;向这样的字符串添加空字符串也不会更改它。除非path
为空,在这种情况下,它将空指针替换为指向字符串"null"
的指针。这似乎很奇怪。
注意:请勿使用StringUtils。不好。
例如,StringUtils.isNotBlank
有很多问题:
null
的意思是“无价值”或“未知”。如果我问你:“我有一件未知的衬衫。它是红色的吗?”,那么唯一明智的答案是:“嗯?我不知道!”。 “是,它是红色”或“否,它不是”都不正确。path.isBlank()
。或更确切地说,!path.isBlank()
。答案 1 :(得分:0)
可以测试无效方法
演示班
public class Demo
{
private String path="dummy";
private static final String CONTENTPATH="/content";
private String link;
protected void init()
{
if(path.length()>0)
{
link=path+ "";
}
}
private boolean isInternal()
{
return path.contains(CONTENTPATH);
}
public String getLink()
{
return link;
}
}
测试用例
class DemoTest {
@Test
void test() {
Demo obj = new Demo();
obj.init();
assertEquals("dummy", obj.getLink());
}
}