Mockito 静态类中的void方法

发布时间 2023-06-21 17:18:05作者: Dshzs月

moke例子(我直接用伪代码)

public class DictUtils {
    	public static void removeDictCache(String key) {
		//执行得方法业务
	}
}

你的业务代码中引用这个类的方法

public void deleteDictTypeByIds(Long[] dictIds) {
		DictUtils.removeDictCache(Sting key);
		//业务代码
	}

重点来了,我们要写的Test方法

@RunWith(PowerMockRunner.class)
@PrepareForTest({DictUtils.class})//需要moke的类
@PowerMockIgnore("jdk.internal.reflect.*")
public class Test{
    @Test
    public void test() throws Exception {
        Long[] dictIds = {1L,2L};
        PowerMockito.mockStatic(DictUtils.class);
        //第一个参数是你要moke的类,第二个参数是你要moke的方法名称,第三个参数是方法里的参数,如果有多个就继续添加参数就好,用逗号隔开
        doNothing().when(DictUtils.class,"removeDictCache",anyString());
        
    }
}