2011-08-18 10 views
16

私は整数値のリストを取るプライベートメソッドを持っています。整数値のリストを返します。どのように私はそれをテストするためにモックを使用することができます。私はpowermock.Can私は簡単なモックでテストを行うことができます新しいです...?どのように...というセクションでthe documentationから整数のリストを返すパワーモックを使ったプライベートメソッドのテスト

+0

私はあなたが試したものの具体的な例を与え、何を働いていない場合は、より多くの助けを得ると思います。 – jhericks

答えて

23

、 "共通 - バイパスカプセル化": インスタンスまたはクラスのプライベートメソッドを呼び出すために

使用Whitebox.invokeMethod(..)。

また、同じセクションで例を見つけることもできます。ここで

+0

リンクが既に死んでいる –

1
Whitebox.invokeMethod(myClassToBeTestedInstance, "theMethodToTest", expectedFooValue); 
+1

クラスオブジェクトではなく、クラスインスタンスを使用する必要があることがわかりました。 (ClassToBeTested.classではなくmyClassToBeTestedInstance) –

+0

@RabRoss正解、修正済み、ありがとう! –

5

はそれに行う方法を完全な例です:

import java.util.ArrayList; 
import java.util.List; 

import org.junit.Assert; 
import org.junit.Test; 
import org.powermock.reflect.Whitebox; 

class TestClass { 
    private List<Integer> methodCall(int num) { 
     System.out.println("Call methodCall num: " + num); 
     List<Integer> result = new ArrayList<>(num); 
     for (int i = 0; i < num; i++) { 
      result.add(new Integer(i)); 
     } 
     return result; 
    } 
} 

@Test 
public void testPrivateMethodCall() throws Exception { 
    int n = 10; 
    List result = Whitebox.invokeMethod(new TestClass(), "methodCall", n); 
    Assert.assertEquals(n, result.size()); 
} 
関連する問題