当前位置: 首页 > 面试题库 >

如何使JUnit打印断言结果

墨承泽
2023-03-14
问题内容

如何获得要打印到[标准输出]的JUnit断言的结果?

我有一些像这样的测试:

@Test
public void test01()
{
    Position p = getPositionAt('a', 1);
    assertNotNull("a1 exists", p);
    assertNotNull("figure exists a1", p.getFigure());

    p = getPositionAt('a', 2);
    assertNotNull("exists a2", p);
    assertNull("figure exists a2", p.getFigure());

    p = getPositionAt('b', 1);
    assertNotNull("exists b1", p);
    assertNull("figure exists b1", p.getFigure());
}

这是我希望获得的打印输出格式:

a1 exists -success
figure exists a1 -success
exists a2 -success
figure exists a2 -succcess
exists b1 -succcess
figure exists b1 -failed

是否可以使用runners和进行此操作suites?或是否存在任何assertSuccess()assertFailed()方法?


问题答案:

首先,您有两个问题,而不是一个。断言失败时,将AssertionError引发异常。这样可以防止检查超过此点的任何断言。为了解决这个问题,您需要使用ErrorCollector。

其次,我不认为JUnit内置了任何方法来执行此操作。但是,您可以实现包装断言的自己的方法:

public static void assertNotNull(String description, Object object){
     try{
          Assert.assertNotNull(description, object);
          System.out.println(description + " - passed");
     }catch(AssertionError e){
          System.out.println(description + " - failed");

        throw e;
     }
}


 类似资料:
  • 我试着 我在调试时获得和是。 如何在使用时断言大于条件

  • 问题内容: 今天,我看到了一个带有Java断言而不是JUnit断言的JUnit测试用例-相对于另一个而言,优先选择一个优点还是缺点? 问题答案: 在JUnit4中,JUnit断言引发的异常(实际上是Error)与java 关键字(AssertionError)引发的错误相同,因此它与堆栈跟踪完全相同,除了您无法分辨出其区别。 话虽这么说,断言必须在JVM中使用特殊标志运行,导致许多测试似乎通过了,

  • 有没有Hamcrest可以让我明确断言,返回对象的的方法的结果至少有一个对象包含具有特定值的属性? 例如: 测试下的方法返回一个的集合。我需要断言至少有一个人叫彼得。

  • 问题内容: 我有这些值来自测试 我尝试 我得到了,关于调试是。 我怎样才能断言超越使用条件 问题答案: 只是您的操作方式。还有一个过载,如果发生故障,消息是;如果要打印某某某物的大小不超过某某某物的大小,则可以使用它。 您也可以添加依赖项以使用匹配器。参见https://code.google.com/p/hamcrest/wiki/Tutorial: 这给出了类似的错误:

  • 我有以下类桥联图: 我将JUnit测试用例编写为: 但我不知道该断言什么:

  • 嗨,我有这样的东西: 如何打印排序结果?