相关疑难解决方法(0)

当@ Rule的相互依赖时,如何处理它们的排序

我使用在Junit测试用例中运行的嵌入式服务器.有时这些服务器需要一个工作目录(例如Apache Directory服务器).

Junit 4.7中的新@Rule可以处理这些情况.TemporaryFolder-Rule可以创建临时目录.可以为服务器创建自定义ExternalResource-Rule.但是如果我想将结果从一个规则传递到另一个规则,我该如何处理:

import static org.junit.Assert.assertEquals;
import java.io.*;
import org.junit.*;
import org.junit.rules.*;

public class FolderRuleOrderingTest {

    @Rule
    public TemporaryFolder folder = new TemporaryFolder();

    @Rule
    public MyNumberServer server = new MyNumberServer(folder);

    @Test
    public void testMyNumberServer() throws IOException {
        server.storeNumber(10);
        assertEquals(10, server.getNumber());
    }

    /** Simple server that can store one number */
    private static class MyNumberServer extends ExternalResource {

        private TemporaryFolder folder;

        /** The actual datafile where the number are stored */
        private File dataFile;

        public MyNumberServer(TemporaryFolder folder) {
            this.folder = …
Run Code Online (Sandbox Code Playgroud)

java junit junit4

32
推荐指数
3
解决办法
1万
查看次数

标签 统计

java ×1

junit ×1

junit4 ×1