《Java单元测试实战》——编写方法:Java编程技巧之单元测试用例编写流程(9) https://developer.aliyun.com/article/1232410?groupCode=java
七、 调用被测方法
在准备好参数对象后,就可以调用被测试方法了。
如果把方法按访问权限分类,可以简单地分为有访问权限和无访问权限两种。但实际上,Java语言中提供了public、protected、private和缺失共4种权限修饰符,在不同的环境下又对应不同的访问权限。具体映射关系如下:
下面,将根据有访问权限和无访问权限两种情况,来介绍如何调用被测方法。
1. 调用构造方法
1) 调用有访问权限的构造方法
可以直接调用有访问权限的构造方法。
2) 调用无访问权限的构造方法
调用无访问权限的构造方法,可以使用PowerMock提供的Whitebox.invokeConstructor方法。
备注:该方法也可以调用有访问权限的构造方法,但是不建议使用。
2. 调用普通方法
1) 调用有访问权限的普通方法
可以直接调用有访问权限的普通方法。
2) 调用无权限访问的普通方法
调用无访问权限的普通方法,可以使用PowerMock提供的Whitebox.invokeMethod方法。
也可以使用PowerMock提供Whitebox.getMethod方法和PowerMockito.method方法,可以直接获取对应类方法对象。然后,通过Method的invoke方法,可以调用没有访问权限的方法。
备注:该方法也可以调用有访问权限的普通方法,但是不建议使用。
3.调用静态方法
1)调用有权限访问的静态方法
可以直接调用有访问权限的静态方法。
2) 调用无权限访问的静态方法
调用无权限访问的静态方法,可以使用PowerMock提供的Whitebox.invokeMethod方法。
备注:该方法也可以调用有访问权限的静态方法,但是不建议使用。
《Java单元测试实战》——编写方法:Java编程技巧之单元测试用例编写流程(11) https://developer.aliyun.com/article/1232408?groupCode=java