PowerMock 为了更好地支持 SpringMVC/SpringBoot 项目,提供了一系列的注解, 大大地简化了测试代码。
@RunWith 注解 • @RunWith(PowerMockRunner.class) • 指定 JUnit 使用 PowerMock 框架中的单元测试运行器。
@PrepareForTest 注解 • @PrepareForTest({ TargetClass.class }) • 当需要模拟 final 类、final 方法或静态方法时,需要添加@PrepareForTest 注 解,并指定方法所在的类。如果需要指定多个类,在{}中添加多个类并用逗号隔 开即可。
@Mock 注解 • @Mock 注解创建了一个全部 Mock 的实例,所有属性和方法全被置空(0 或者 null)。
@Spy 注解 • @Spy 注解创建了一个没有 Mock 的实例,所有成员方法都会按照原方法的逻辑 执行,直到被 Mock 返回某个具体的值为止。 注意: @Spy 注解的变量需要被初始化,否则执行时会抛出异常。
@InjectMocks 注解 @InjectMocks 注解创建一个实例,这个实例可以调用真实代码的方法,其余用 @Mock 或@Spy 注解创建的实例将被注入到用该实例中。
@Captor 注解 @Captor 注解在字段级别创建参数捕获器。但是,在测试方法启动前,必须调用 “MockitoAnnotations.openMocks(this)”进行初始化。
@PowerMockIgnore 注解 为了解决使用 PowerMock 后,提示 ClassLoader 错误。
以上内容摘自《Java工程师必读手册》电子书,点击https://developer.aliyun.com/ebook/download/7780 可下载完整版
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。