布尔值的assertequals与asserttrue

jljoyd4f  于 2021-07-12  发布在  Java
关注(0)|答案(1)|浏览(462)

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

我还有一个问题。

当我们只有布尔值要测试时,情况会怎样? assertEquals(true, a) 以及 assertTrue(a) 有什么区别?

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

s5a0g9ez

s5a0g9ez1#

assertEquals(a, b) 以及 assertTrue(a.equals(b)) 不一样,因为如果两者都为null,前者将返回true,而后者将抛出null指针异常。
惯用的写作方式 assertTrue(a == b)assertSame(a, b) ,如果 a 以及 b 是参考资料。对于基本体,使用 assertEquals . assertEquals(true, a) 以及 assertTrue(a) 语义相同。只是风格的问题。前者会被许多人认为是糟糕的风格,这是一样的。

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

相关问题