assertEquals Vs assertTrue for boolean



您可以测试对象assertEquals(a,b)assertTrue(a.equals(b))assertTrue(a==b)(对于基元(。在这种情况下,assertEquals(a,b)当然是唯一可能的变体。它是空安全的,并且在测试故障的情况下提供更多信息(您得到的确切错误不是真或假(。

我有下一个问题。

当我们只有布尔值要测试时,情况如何?

assertEquals(true, a)assertTrue(a)

能有什么区别?

当我们检查布尔值时,我看到了这种情况。使用 assertTrue(a( 不是空安全的。这是非常重要的原因。在布尔值的情况下看不到区别。

assertEquals(a, b)assertTrue(a.equals(b))是不一样的,因为如果两者都为空,前者将返回true,而后者将抛出空指针异常。

assertTrue(a == b)的惯用写法是assertSame(a, b),如果ab是参考。对于基元,请使用assertEquals

assertEquals(true, a)assertTrue(a)在语义上是相同的。这只是风格问题。前者会被许多人认为是糟糕的风格,就像这样一样。

if (isActive() == true) {
doThing()
}

最新更新