Java 如何使用AfterXXX和BeforeXXX在testng junits@ClassRule中实现

Java 如何使用AfterXXX和BeforeXXX在testng junits@ClassRule中实现,java,junit,testng,Java,Junit,Testng,正如我在谷歌上搜索到的,问题已经接受了答案,即有一种方法可以通过使用AfterXXX和BeforeXXX方法来实现@ClassRule 如何使用这些方法实现@ClassRule JUnit: public class UsesExternalResource { public static Server myServer= new Server(); @ClassRule public static ExternalResource resource= new ExternalRe

正如我在谷歌上搜索到的,问题已经接受了答案,即有一种方法可以通过使用AfterXXX和BeforeXXX方法来实现@ClassRule

如何使用这些方法实现@ClassRule

JUnit:

public class UsesExternalResource {
  public static Server myServer= new Server();

  @ClassRule
  public static ExternalResource resource= new ExternalResource() {
    @Override
    protected void before() throws Throwable {
      myServer.connect();
    };

    @Override
    protected void after() {
      myServer.disconnect();
    };
  };
}
TestNG:

public class UsesExternalResource {
  public Server myServer= new Server();

  @BeforeClass
  public void before() {
    myServer.connect();
  }

  @AfterClass
  public void before() {
    myServer.disconnect();
  }
}

那么@ClassRule到底做了什么?TestNG通常比JUnit强大得多,但它们的工作方式却截然不同。。。