只需要在@BeforeClass,@Before,@Test方法中初始化mock-up就可以使用。
mock-up类:
public class FakeClass extends MockUp<Dependency> {
@Mock
//mock构造器
public void $init(String name) {
assertNotNull(name);
}
@Mock
public void mockMethod() {}
}
测试代码:
@Test
public void apply() throws Exception {
//初始化
new FakeClass();
//对Dependency的mockMethod()方法调用会转移到FakeClass中
new Dependency("test").mockMethod();
}
可以mock的方法
被private,public,包访问权限,static,final,native修饰的方法都可以mock,并且可以用实例方法mock静态方法,也可以用静态方法mock实例方法。abstract方法或者接口方法不能被直接mock。
匿名mock-up类
@Test
public void testMethod() throws Exception() {
new MockUp<Dependency>() {
}