1 基本概念
1.1 常用注解
- @Mocked:被修饰的对象将会被Mock,对应的类和实例都会受影响(同一个测试用例中)
- @Injectable:仅Mock被修饰的对象
- @Capturing:可以mock接口以及其所有的实现类
- @Mock:MockUp模式中,指定被Fake的方法
1.2 常用的类
- Expectations:期望,指定的方法必须被调用
- StrictExpectations:严格的期望,指定方法必须按照顺序调用
- NonStrictExpectations:非严格的期望,是否调用和顺序不作要求
- Verifications:验证,一般配合NonStrictExpectations来使用
- Invocation:工具类,可以获取调用信息
- Delegate:自己指定返回值,适合那种需要参数决定返回值的场景,只需指定匿名子类就可以。
- MockUp:模拟函数实现
- Deencapsulation:反射工具类
2 使用实例
现有两个类如下:
SimpleTool.java:
public class SimpleTool {
public String fun1(String str) {
return "real: public String fun1(" + str + ")";
}
private String fun2(String str) {
return "real: private String fun2(" + str + ")";
}
public String fun3(String str) {
return "real: public String fun3(" + str + ")";
}
public String fun4(String str) {
return fun2(str);
}
}
UseSimpleTool.java:
public class UseSimpleTool {
public String fun1</