首页 > 代码库 > EassyMock实践 捕获参数
EassyMock实践 捕获参数
在测试接口过程中,有时我们希望知道自己期望传入的参数是什么,以此来判断传入参数的正确行,这时就需要用到EassyMock的capture方法.该方法能捕获传入的参数存放到自定义的变量中,然后用捕获的参数与期望的参数进行对比,从而判断调用接口时使用的参数是否正确.
下面用例子演示一下:
要测试的接口
package MockTestWithCapture;public interface Service { void handle(int arg, int[] array);}
测试的类
package MockTestWithCapture;import static org.junit.Assert.*;import org.easymock.*;import org.junit.*;import static org.easymock.EasyMock.*;public class TestService { @Test public void test() { Service mockService = createMock("mockService", Service.class); //首先定义要用来存放捕获参数的变量 Capture<Integer> capArg = new Capture<Integer>(); Capture<Object> capArray = new Capture<Object>();//Capture没有对应数组的,所以只能用Object存放数组,之后在强制性转换 //这里是重点,需要调用capture方法捕获实际传入的参数 //注意这里第一个参数必须用captureInt方法,不能用capture方法,否则因为传入参数类型不匹配而报错 mockService.handle(captureInt(capArg), (int[])capture(capArray)); // 下面的写法也争取// int a1 = captureInt(capArg);// int[] a2 = (int[])capture(capArray);// mockService.handle(a1, a2); replay(mockService); int arg = 100; int[] array = {1,2,3,4}; //实际调用接口传入的参数是arg和array mockService.handle(arg, array); //捕获实际传入的参数 int actual1 = capArg.getValue(); int[] actual2= (int[])capArray.getValue(); //这里我们将捕获的参数进行校验 assertEquals(arg, actual1); assertArrayEquals(array, actual2); verify(mockService); }}
EassyMock实践 捕获参数
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。