Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/333.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 需要dp4j的帮助吗_Java_Junit - Fatal编程技术网

Java 需要dp4j的帮助吗

Java 需要dp4j的帮助吗,java,junit,Java,Junit,我正试图在课堂上测试私有方法。我发现使用dp4j测试私有方法非常容易,我还发现了示例代码。但该示例代码没有运行。我正在尝试从eclipse运行,并且dp4j.jar已经包含在构建路径中。JUnit站点中的示例是 使用dp4j.jar作为项目库,您可以直接访问测试中的私有方法。反射API代码将直接注入AST(即在编译期间)。例如,以下操作将起作用: class Junit11 { private int one = 1; private static void p(int i,

我正试图在课堂上测试私有方法。我发现使用dp4j测试私有方法非常容易,我还发现了示例代码。但该示例代码没有运行。我正在尝试从eclipse运行,并且dp4j.jar已经包含在构建路径中。JUnit站点中的示例是

使用dp4j.jar作为项目库,您可以直接访问测试中的私有方法。反射API代码将直接注入AST(即在编译期间)。例如,以下操作将起作用:

class Junit11 {

    private int one = 1;

    private static void p(int i, Double d, String... s) {}

}

public class JunitTest11 {

    @org.junit.Test
    public void t() {
         final int two = new Junit11().one + 1;
         org.junit.Assert.assertEquals(2, two);
         Junit11.p(two, new Double(2), "who", "said", "varargs are difficult to test with the reflection API?");
         assertEquals("generate and validate my Patterns implementations", dp4j.com);

    }

}

有人能帮我运行这个吗?

你不能从Eclipse使用dp4j。它使用内部javacapis。Eclipse有自己的编译器,所以除非您在Eclipse中使用maven,否则不能使用dp4j


请看

您能更具体地描述什么不适合您吗?并描述您是如何运行测试的。我是从eclipse运行此测试的。我已经将dp4j.jar添加到构建路径中。但是eclipse在方法t()的第1行和第3行显示编译错误。但阅读dp4j站点中的描述,似乎反射代码是在编译时生成的,所以在测试期间不需要编写任何额外的代码来访问私有方法。