2011-11-14 181 views
1

我想在類中測試私有方法。我發現用dp4j測試私有方法非常簡單,我也發現了示例代碼。但是示例代碼沒有運行。我試圖從eclipse運行,並且dp4j.jar已經包含在構建路徑中。在JUnit站點中找到的示例是:在dp4j上需要幫助

將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); 

    } 

} 

任何人都可以幫我運行這個?

+1

請問您能否具體介紹一下哪些不適合您? – mkro

+0

並描述你如何運行測試。 –

+0

我從eclipse運行這個。我已經將dp4j.jar添加到構建路徑。但是eclipse在方法t()的第一行和第三行顯示編譯錯誤。但是在dp4j站點閱讀描述,似乎反射代碼是在編譯期間生成的,所以在測試期間不需要編寫任何額外的代碼來訪問私有方法。 – Partha

回答

2

你不能在Eclipse中使用dp4j。它使用內部的javac API。 Eclipse有它自己的編譯器,所以除非你在Eclipse中使用maven,否則你不能使用dp4j。

查看dp4j FAQ: Does it work with Eclipse?