JMokit:mock filed还是mock parameter
JMockit中使用注释@Mocked @Injectable @Capturing来声明对类型或实例的mock,三个注解的区别看这里:
这三个注解使用范围均为ElementType.FIELD, ElementType.PARAMETER,即类成员与方法参数
对测试类成员使用
即mock filed会对整个测试类有效,而且是对类型(new出该类型实例调用仍然是被mocked状态),且必须对类型中需要使用的方法mock(不对该类方法进行具体mock的话都将返回null),所以如果该测试类中所有用例都要对该类型进行mock的情况下才建议使用mock filed,比如对远程接口调用(在测试环境中无法搭建调用环境是)。
对方法参数使用
mock parameter,这是比较常用的情况,mock的范围只在测试方法中