有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java Testng测试特定的异常消息

我试图测试一个方法是否抛出一个特定的异常,其消息如下:

@DataProvider(name = "correctPairs")
public Object[][] expectedResultsTest() {
return new Object[][] {
 { null, new NullPointerException("Class cannot be null") },
};
}

@Test(dataProvider = "correctPairs")
public void ormDefinitionClassTest(final Class<?> value, final Throwable e) {
try {
    DatabaseManager databaseManager = new DatabaseManager();
    databaseManager.findAll(value);
} catch (Throwable ex) {

    Assert.assertEquals(ex, e);    
}

但它失败了,只有一个例外:

 java.lang.AssertionError: expected [java.lang.NullPointerException: Class cannot be null] but found [java.lang.NullPointerException: Class cannot be null]

如何使用@DataProvider检查异常是否相等


共 (1) 个答案

  1. # 1 楼答案

    你的错误在于平等测试

    Assert.assertEquals(new NullPointerException(), new NullPointerException());
    

    返回false,因为两个异常的实例不相同。 您必须比较类,然后比较消息