Java 外部资源vs@Before/@After
我正在尝试JUnit规则:ExternalResource,看不出@Before和@After的区别Java 外部资源vs@Before/@After,java,junit,Java,Junit,我正在尝试JUnit规则:ExternalResource,看不出@Before和@After的区别 @Rule public ExternalResource externalResource = new ExternalResource() { @Override protected void before() throws Throwable { super.before(); LOG.info("before"); ser
@Rule
public ExternalResource externalResource = new ExternalResource() {
@Override
protected void before() throws Throwable {
super.before();
LOG.info("before");
serverSocket = new ServerSocket(2004, 10);
socket = new Socket();
socket.connect(serverSocket.getLocalSocketAddress());
}
@Override
protected void after() {
super.after();
LOG.info("after");
try {
socket.close();
serverSocket.close();
} catch (IOException e) {
LOG.log(Level.SEVERE , "Error closing socket", e);
}
}
};
这一准则的后果是:
1. before (ExternalResource)
2. before (@Before)
3. after (@After)
4. after (ExternalResource)
使用ExternalResource的优点是什么?在多个测试类中重用
ExternalResource
实现比在方法之前/之后共享更容易。在多个测试类中重用ExternalResource
实现比在方法之前/之后共享更容易