如何在有时返回String并且有时返回null时使用Assert.assertEquals

时间:2016-07-20 19:38:34

标签: java nullpointerexception

这是关于StackOverflow的第一个问题,我是一个完全的初学者,所以如果我的问题含糊不清,我会道歉

我有一个方法,有时会返回一个String,有时会返回null。

public String confirmLogo() {
String logo = null;

if(sql.getLogo(ID).equals("Qwerty Logo")
logo += "Qwerty Logo";

return logo;
}

因此,有时会返回“qwerty logo”,有时会返回null。

然后在测试课中,我试图确认什么是返回匹配的预期。

String primaryLogo = getLogoName(ID);
Assert.assert.equals(primaryLogo, example.confirmLogo());

我可以理解地返回了NPE(java.lang.NullPointerException),但我想知道如何实现这一点,或者是否有人不能指出我适当的参考。

3 个答案:

答案 0 :(得分:1)

您的测试应该是可预测的我会使用两个不同的测试来测试它,一个期望$_POST而另一个不期望null。使用不同的输入参数来实现所需的行为(例如,一次提供x = "test",在其他情况下使用x = "other")。

除非你真的有例如方法中的Math.random():)

答案 1 :(得分:0)

您可以找到Assert类here.

的参考

当它被exepcted返回null时,你可以使用assertNull。 如果不是,你可以在assertEquals之前使用assertNotNull - 避免NPE。

答案 2 :(得分:0)

根据Assert.assertEquals()http://junit.sourceforge.net/javadoc/org/junit/Assert.html#assertEquals(java.lang.Object,%20java.lang.Object)

的JavaDoc
  

断言两个对象是相等的。如果不是,则抛出没有消息的AssertionError。 如果预期和实际为空,则认为它们相等

你永远不应该通过致电NullPointerException获得Assert.assertEquals()