gpt4 book ai didi

java - 包装 JUnit 测试(在 Eclipse 中)

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:11:39 25 4
gpt4 key购买 nike

我对 Groovy 代码的所有测试都像这样

public void testButtons() {
try {
page.getButtons();
} catch (Exception e) {
throw org.codehaus.groovy.runtime.StackTraceUtils.sanitize(e);
}
}

因为我需要清理出现的任何可能的 StackTrace(否则很难阅读,因为它包含所有 Groovy 元代码)。有什么方法可以指定所有 JUnit 测试以特定方式包装(如错误处理程序)?

注意:我在 Eclipse 中运行这些,但如果有一种方法可以在 IntelliJ 或 Netbeans 中执行此操作,那将是一件好事。

最佳答案

是的,使用规则。基本上,您必须有一个实现 MethodRule 接口(interface)的类,该接口(interface)通过替换它自己的包含 try/catch 的 Statement 实现来处理 apply 方法中的异常处理。

要使用规则,您可以像这样在测试类中定义一个字段:

  @Rule public MethodRule exceptionCleanser = new ExceptionCleanser();

第一个 cut 实现可能看起来像这样:

  public class ExceptionCleanser implements MethodRule {

public Statement apply(final Statement base, FrameworkMethod method, Object target) {
return new Statement() {
public void evaluate() throws Throwable {
try {
base.evaluate();
} catch (Exception e) {
throw org.codehaus.groovy.runtime.StackTraceUtils.sanitize(e);
}
}
};
}
}

以上内容完全未经测试,但您应该能够理解。 @Rule 注释是在 JUnit 4.7 中引入的,因此您可能需要更新才能使用它。

关于java - 包装 JUnit 测试(在 Eclipse 中),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2769416/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com