Bootstrap

Powermockito之static方法的Mock和Spy

写Junit,当遇到数据库调用,文件操作等耗时的方法,或者接口不可用的时候,通常需要mock或者spy这个方法的调用。
Powermockto的强大之处,在于它可以应用于静态,私有等方法。
下面讲解一下这两种方式如何应用于Static方法。

Mock Static

Junit最常用的方式就是Mock,mock会导致所有的静态方法都被stub,导致方法默认返回null(对象),0(数字)或者false(boolean)。
下面是Mock的一个例子

		PowerMockito.mockStatic(XXCommonUtils.class);
		PowerMockito.mockStatic(XXUtils.class);
		XXUserInfo userInfo = new XXUserInfo();
		userInfo.setUserid("userId1001");
		PowerMockito.when(XXCommonUtils.getUserInfo()).thenReturn(userInfo);
		PowerMockito.when(XXUtils.createErrorList("XX0024", "DATE1"))
				.then(new Answer<Object>() {
					@Override
					public Object answer(InvocationOnMock invocation) throws Throwable {
						Object[] args = invocation.getArguments();
						List<ResErrors> arg0 = (List<ResErrors>) args[0];
	
;