powermock

mock静态方法

@RunWith(PowerMockRunner.class)
@PrepareForTest({CaseAction.class, OssUtil.class})

PowerMockito.mockStatic(OssUtil.class);
PowerMockito.when(OssUtil.class,"deleteFile",Mockito.anyString(),Mockito.anyInt()).thenReturn(true);

mockHttpServletResponse,获取response输出

//mock response
MockHttpServletResponse response = new MockHttpServletResponse();
caseAction.doDeleteAccessory("a/b", "c.txt", 1000, 1, response);

byte[] content = response.getContentAsByteArray();
Assert.assertEquals("{\"errMsg\":\"\",\"result\":\"{\\\"id\\\":\\\"1\\\",\\\"status\\\":\\\"ok\\\"}\"}",new String(content,"GB2312"));

 mock内部创建对象方法的调用

ParseContext parseContext = PowerMockito.mock(ParseContext.class);
PowerMockito.whenNew(ParseContext.class).withAnyArguments().thenReturn(parseContext);
TreeNode treeNode = new TreeNode();
treeNode.setName("case1");
PowerMockito.when(parseContext.parser()).thenReturn(treeNode);

 mock和spy的区别

mock方法还会真正去执行该方法。spy方法不去执行该方法。mock需要使用thenreturn。spy需要使用doreturn。
posted @ 2016-09-20 10:55  邓空  阅读(241)  评论(0编辑  收藏  举报