测试中如何对私有方法进行测试:
一般情况下私有方法只能在所属类的内部进行调用,在类外则无法通过对象.方法名的方法调用私有方法。那么在平时测试中,如何测试私有方法,下面分享个人所知的两种方法,如下:
方法一:使用PowerMock测试私有方法
【格式】
//调用方法格式
Object result = Deencapsulation.invoke(mockClass, methodName, parameter1, parameter2 ….);
【说明】
- mockClass:该参数是需要调用方法所属的类,该类需要被mock
- methodName:该参数为需要调用的私有方法名
- parameter:该参数为调用方法的参数的值,根据方法需要设置的参数个数而定
- Deencapsulation.invoke()返回结果类型:与调用方法(即测试的方法)返回的类型一致
方法二:通过反射机制测试私有方法
【格式】
//调用方法格式
Method method = 类对象.getClass().getDeclaredMethod(methodName, 参数类型1, 参数类型2….);
Object result = method.invoke(类对象, 参数值1, 参数值2…)
【说明】
- 类对象: 调用私有方法所属类的对象
- methodName:调用的私有方法名