JMockit运用实例<三>验证被Mock的类的某个方法是否被调用
JMockit使用实例<三>验证被Mock的类的某个方法是否被调用
关键词:Verifications 想验证被Mock的类的某个方法是否被调用
单元测试类清单
小结
有时候我们想验证某个类的方法是否被正确调用的时候,上述Verifications就派上用场了
/** * 演示验证被Mock的类的某个方法是否被调用 * @sina weibo regbin@tom.com */ public class ServiceTest { @Mocked Remote remote; @Test public void testDoFuncYes() { Service service = new Service(); service.doFunc(true, 1); new Verifications() { { remote.doSomething(anyInt);//表示这个方法会被执行 //remote.doSomething(1);//表示这个方法会被执行,而且参数是1;在当前case,会通过 //remote.doSomething(2);//表示这个方法会被执行,而且参数是2;在当前case,这个会不被通过 } }; } @Test public void testDoFuncNo() { Service service = new Service(); service.doFunc(false, 1); new Verifications() { { remote.doSomething(anyInt); times = 0;//调用次数,0表示上面方法不会被调用 } }; } private static class Remote { public void doSomething(int a) { } } private static class Service { private Remote remote = new Remote(); public void doFunc(boolean flag, int a) { if (flag) { remote.doSomething(a); } } } }
有时候我们想验证某个类的方法是否被正确调用的时候,上述Verifications就派上用场了