2011-11-14 35 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()の1行目と3行目でコンパイルエラーを示します。しかし、dp4jサイトの説明を読むと、コンパイル時にリフレクションコードが生成され、テスト中にプライベートメソッドにアクセスするための余分なコードを書く必要がないようです。 – Partha

答えて

2

Eclipseからdp4jを使用することはできません。内部javac APIを使用します。 Eclipseには独自のコンパイラがありますので、Eclipseでmavenを使用していない限り、dp4jは使用できません。

dp4j FAQ: Does it work with Eclipse?