什么是比较失败,JUnit中预期为null?

时间:2013-05-26 00:29:14

标签: java junit

我正在尝试使用assertEquals(s1,s2)比较两个字符串; 我收到比较错误<>预期null。 帮助我解决这个问题。?

2 个答案:

答案 0 :(得分:5)

(你没有说你正在使用什么版本的JUnit,它可能很重要......虽然可能没有。)

这意味着单元测试的表达式的计算结果为nullexpected的{​​{1}}参数,而assertEquals参数的计算结果为actual 1}}。

如果不查看代码,就无法说明这意味着什么,但它可能是单元测试中的错误(例如,错误方式的参数)或者测试代码中的错误......或两者。至于为什么你得到null,这取决于单元测试和/或它正在测试的代码。您需要通过查看源代码,使用调试器等进行自己的调查。

请注意,null方法(见下文)使用assertEquals(而不是equals)比较对象,并注意避免将NPE抛出,或者两个参数都是{{1} }。因此,建议您首先测试==的人会忽略这一点。

这是Junit 4.4代码:

null

如您所见,处理null个案件......

答案 1 :(得分:0)

JUnit调用.equals()方法来确定方法assertEquals(Object o1,Object o2)中的相等性。所以,使用assertEquals(string1,string2)肯定是安全的。 (因为字符串是对象)提供的对象都是非空的。评估它的另一种方法是使用assertTrue:

assertTrue(s1.equals(s2));