Junit3.8プライベートメソッドテスト
2526 ワード
1.クラスのプライベートメソッドをテストする場合は、2つの方法があります.1)メソッドのアクセス修飾子を変更し、privateをdefaultまたはpublicに変更します(ただし、この方法は推奨されません).2)反射を使用してテストクラスでターゲットクラスを呼び出すプライベートメソッド(推奨).
1 package junit; 2
3 public class Calculator2 4 { 5 private int add(int a, int b) 6 { 7 return a + b; 8 } 9 } 10
11
12 package junit; 13
14 import java.lang.reflect.Method; 15
16 import junit.framework.Assert; 17 import junit.framework.TestCase; 18 /**
19 * , 20 */
21 public class Calculator2Test extends TestCase 22 { 23 public void testAdd() 24 { 25 try
26 { 27 Calculator2 cal2 = new Calculator2(); 28
29 Class<Calculator2> clazz = Calculator2.class; 30
31 Method method = clazz.getDeclaredMethod("add", new Class[] { 32 Integer.TYPE, Integer.TYPE }); 33
34 method.setAccessible(true); 35
36 Object result = method.invoke(cal2, new Object[] { 2, 3 }); 37
38 Assert.assertEquals(5, result); 39
40 } 41 catch (Exception ex) 42 { 43 Assert.fail(); 44 } 45
46 } 47 }