java - 如何在 JerseyTest 套件中使用 @BeforeClass 和 @AfterClass

标签 java junit junit4 jersey-2.0 jersey-test-framework

事实证明,JUnit 希望 @BeforeClass@AfterClass 是静态的,这与 JerseyTest 的 configure 方法相处得不好覆盖。是否有一种已知的方法来配置 Jersey 应用程序,同时仍然能够访问 JUnit 的实用程序方法?

public class MyControllerTest  extends JerseyTest {
  @BeforeClass
  public static void setup() throws Exception {
    target("myRoute").request().post(Entity.json("{}"));
  }
  @Override
  protected Application configure() {
      return new AppConfiguration();
  }
}

因此beforeClass需要是静态的,target不能被调用,因为它的实例方法性质。在尝试改用构造函数时,事实证明 configureconstructor 之后运行,这会阻止设置请求的执行,因此自然会失败。

非常感谢任何建议,谢谢!

最佳答案

为了避免在这种情况下进行繁重的设置,我们在几种情况下所做的是使用 boolean 标志有条件地运行该设置。

public class MyControllerTest extends JerseyTest {

  private static myRouteSetupDone = false;

  @Before
  public void setup() throws Exception {
    if (!myRouteSetupDone) {
      target("myRoute").request().post(Entity.json("{}"));
      myRouteSetupDone = true;
    }
  }
  @Override
  protected Application configure() {
      return new AppConfiguration();
  }
}

关于java - 如何在 JerseyTest 套件中使用 @BeforeClass 和 @AfterClass,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38654948/

相关文章:

java - finishActivity() 在 Android 中未按预期工作

java - 未找到 Spring Data Rest 存储库

java - Microsoft VSTS 不构建 Android 项目 - JavaMaximumHeapSize - 在本地计算机上运行

java - 将扫描仪中的单词处理为字符串数组

java - Spring 测试 DBunit 警告

java 8 获取最大出现次数相等的元素

android - JaCoCo 报告 0% 的代码覆盖率

Java:使用反射调用方法时如何获得完整的失败跟踪?

安卓 Espresso : checking for a checked checkbox

solr - Solr 3.6 JUnit 测试有推荐的方法吗?