0
我最近在研究Mockito和PowerMock。如何匹配字符串...使用Mockito和PowerMock
我遇到了以下问题
//This method belongs to the Messages class
public static String get(Locale locale, String key, String... args) {
return MessageSupplier.getMessage(locale, key, args);
}
//the new class
@RunWith(PowerMockRunner.class)
@PowerMockIgnore({"javax.management.*"})
@PrepareForTest({Messages.class, LocaleContextHolder.class})
public class DiscreT {
@Test
public void foo() {
PowerMockito.mockStatic(LocaleContextHolder.class);
when(LocaleContextHolder.getLocale()).thenReturn(Locale.ENGLISH);
PowerMockito.mockStatic(Messages.class);
when(Messages.get(Mockito.any(Locale.class),Mockito.anyString(), Mockito.any(String[].class)))
.thenReturn("123156458");
System.out.print(Messages.get(LocaleContextHolder.getLocale(), "p1"));
System.out.print(Messages.get(LocaleContextHolder.getLocale(), "p1", "p2"));
}
}
结果:空123156458
为什么呢?以及如何匹配字符串...
明白了,但是我无法找到任何调用的方法,无论参数如何 –
是的,我也搜索了,它似乎并不存在。有一种方法可以为你的任何模拟方法添加一个默认的答案,但是我找不到所有方法重载的自动模拟。 – Konstantine