java - 从 JUnit 中的 'before' 方法中排除个别测试

标签 java testing junit

我的测试类中的所有测试在执行每个测试之前都执行一个“之前”方法(用 JUnit 的 @Before 注释)。

我需要一个特定的测试来不执行这个 before 方法。

有办法吗?

最佳答案

您可以使用 TestRule 来做到这一点.你用一些描述的注释标记你想跳过的测试,然后,在 TestRule 的 apply 方法中,你可以测试那个注释并做你想做的,比如:

public Statement apply(final Statement base, final Description description) {
  return new Statement() {
    @Override
    public void evaluate() throws Throwable {
      if (description.getAnnotation(DontRunBefore.class) == null) {
        // run the before method here
      }

      base.evaluate();
    }
  };
}

关于java - 从 JUnit 中的 'before' 方法中排除个别测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13017097/

相关文章:

java - 提高 Java Graphics2D 质量

java - 用 Java 创建随机数生成器 - 每次都会重置数组

java - RMI 响应很慢

python - 如何从 call_args_list 获取传递给各种调用的参数?

java - 在 Junit 中多次调用单个测试

java - 当启用发布者确认时,设置了队列长度限制并将溢出设置为拒绝发布,为什么导致我收到的确认回调为空?

python - 如何改进我的 python 脚本来解析链接?

http - HTTP 1.1 合规性测试

java - 如何测试一个方法内部调用了不同的方法?

java - junit 3 中的类拆解?