assert object!=null 和 Assert.assertNotNull(object) 有什么区别?

2022-09-04 20:24:54

以下两个代码块之间有什么区别?

@Test  
public void getObjectTest() throws Exception {
    Object object;
    //Some code
    Assert.assertNotNull(object);
}

@Test  
public void getObjectTest() throws Exception {
    Object object;
    //Some code
    assert object!=null;
}

我知道这是来自TestNG的函数调用,是Java的一个关键词(在Java 1.4中引入)。这两者之间还有其他区别吗?例如工作、绩效等Assert.AssertNotNullassert


答案 1

好吧,第一种情况使用测试框架中的Assert类,这是正确的方法,因为TestNG将以智能方式报告错误。

您还可以将自己的消息添加到测试中:

Assert.assertNotNull(object, "This object should not be null");

第二种情况使用关键字 - 它会给你一个失败,但堆栈跟踪可能一目了然,也可能不容易理解。您还需要注意,断言可能无法启用。assert


答案 2

关于性能:

assert object!=null;是单个java语句,但会导致调用TestNG的多个函数,因此w.r.t.性能会稍微好一些。Assert.assertNotNull(object)assert object!=null;