java - junit5 中的 TestWatcher

标签 java junit5

我找不到任何像 TestWatcher 一样替换/工作的注解。

我的目标: 有 2 个函数,它们根据测试结果做一些事情。

  • 成功了吗?做点什么
  • 失败?做点别的

最佳答案

TestWatcher API介绍在这里:

按如下方式使用:

  1. 实现 TestWatcher类(org.junit.jupiter.api.extension.TestWatcher)
  2. 添加@ExtendWith(<Your class>.class)到你的测试类(我个人使用我在每个测试中扩展的基础测试类)(https://junit.org/junit5/docs/current/user-guide/#extensions)

TestWatcher 为您提供了以下方法来做一些测试中止、失败、成功和禁用:

  • testAborted​(ExtensionContext context, Throwable cause)
  • testDisabled​(ExtensionContext context, Optional<String> reason)
  • testFailed​(ExtensionContext context, Throwable cause)
  • testSuccessful​(ExtensionContext context)

https://junit.org/junit5/docs/current/api/org/junit/jupiter/api/extension/TestWatcher.html

示例 TestWatcher 实现:

import java.util.Optional;

import org.junit.jupiter.api.extension.ExtensionContext;
import org.junit.jupiter.api.extension.TestWatcher;

public class MyTestWatcher implements TestWatcher {
    @Override
    public void testAborted(ExtensionContext extensionContext, Throwable throwable) {
        // do something
    }

    @Override
    public void testDisabled(ExtensionContext extensionContext, Optional<String> optional) {
        // do something
    }

    @Override
    public void testFailed(ExtensionContext extensionContext, Throwable throwable) {
        // do something
    }

    @Override
    public void testSuccessful(ExtensionContext extensionContext) {
        // do something
    }
}

然后你只需将它放在你的测试中:

@ExtendWith(MyTestWatcher.class)
public class TestSomethingSomething {
...

关于java - junit5 中的 TestWatcher,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49037406/

相关文章:

java - HashMap中的桶数是什么意思?

java - 如何使用 CsvFileSource 在 Junit 5 参数化测试中转义双引号

JUnit 5 AfterAll 未在 Kotlin 上执行

java - 如何使用 java(在 Tomcat 上)流式传输和转码媒体文件?

java - 将链接的对象变成流或集合

java - 如何在 java/c++ 中从 3d 场景渲染高质量图像

junit - 如何使用 junit 5 截取测试失败的屏幕截图

junit5 - 精确定位assertAll中的失败

eclipse - 如何使用 junit 5 为 eclipse 编写测试套件?

java - 运行jar文件和exe的区别?