m0_46585788 2021-07-28 00:35 采纳率: 0%
浏览 18

junit怎样测试私有化方法两个参数其中有可变参的方法?

img

  • 写回答

1条回答 默认 最新

  • CSDN专家-微编程 2021-07-28 06:20
    关注

    junit怎样测试私有化方法两个参数其中有可变参的方法?
    首先要明白参数不是方法,所以你主要应该要问junit怎样测试私有化方法,和参数无关
    junit测试私有化方法看下面的示例代码:

    public class calcutate2{
        
        private static String stringtest;
        
        public void  setvalue(String temp){
        
         stringtest=temp+"123";  //get value: stringtest
        
        }
     
        public String getvalue(){  //return the stringtest value for unit test
     
         return stringtest;
        
        }
    }
    
    import org.junit.Assert;
    import java.lang.reflect.Method;
    import org.junit.Test;
    public class PrivateTest {
     
     @Test
     @SuppressWarnings("unchecked")
     public void testAdd()
     {
      calcutate2 cal = new calcutate2();
      Class c = calcutate2.class;//获得class类
      try
      {
       Method method = c.getDeclaredMethod("add", new Class[]{int.class,int.class});//获得method.注意,这里不能使用getMethod方法,因为这个方法只能获取public修饰的方法..
       method.setAccessible(true);//这个设置为true.可以无视java的封装..不设置这个也无法或者这个Method
       Object result = method.invoke(cal, new Object[]{1,10});
       Assert.assertEquals(11, result);//这里自定拆箱..
      }
      catch (Exception e)
      {
       e.printStackTrace();
      }
     }
    }
    

    主要是靠反射技术,你的图片中可变长参数,其实就是一个数组而已

    评论

报告相同问题?

问题事件

  • 创建了问题 7月28日