首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >TestWatcher in junit5

TestWatcher in junit5
EN

Stack Overflow用户
提问于 2018-02-28 19:45:44
回答 1查看 7.3K关注 0票数 10

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

我的目标:有两个功能,做一些事情取决于测试结果。

  • 成功?想点儿办法吧
  • 失败?做点别的事
EN

回答 1

Stack Overflow用户

发布于 2019-02-14 12:17:10

这里介绍了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实现:

代码语言:javascript
复制
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
    }
}

然后你就把这个放在你的测试上:

代码语言:javascript
复制
@ExtendWith(MyTestWatcher.class)
public class TestSomethingSomething {
...
票数 19
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49037406

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档