这是关于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),但我想知道如何实现这一点,或者是否有人不能指出我适当的参考。
答案 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))
断言两个对象是相等的。如果不是,则抛出没有消息的AssertionError。 如果预期和实际为空,则认为它们相等。
你永远不应该通过致电NullPointerException
获得Assert.assertEquals()
。