我设置了嘲讽一个类的静态方法。 我不得不这样做在@Before
-annotated JUnit的设置方法。
我的目标是设置调用真正的方法, 除了那些方法,我明确地嘲笑类。
基本上:
@Before
public void setupStaticUtil() {
PowerMockito.mockStatic(StaticUtilClass.class);
when(StaticUtilClass.someStaticMethod(anyS
特林()))thenReturn(5)。 //模拟出一定的方法...
// Now have all OTHER methods call the real implmentation??? How do I do this?
}
我遇到的问题是,内StaticUtilClass
方法public static int someStaticMethod(String s)
不幸抛出一个RuntimeException
,如果使用所提供的null
值。
因此,我不能简单地去调用真正的方法,如下列的预设答案的明显途径:
@Before
public void setupStaticUtil() {
PowerMockito.mockStatic(StaticUtilClass.class, CALLS_REAL_METHODS); // Default to calling real static methods
// The below call to someStaticMethod() will throw a RuntimeException, as the arg is null!
// Even though I don't actually want to call the method, I just want to setup a mock result
when(StaticUtilClass.someStaticMethod(antString())).thenReturn(5);
}
我需要设置默认的回答来呼吁所有其他静态方法真正的方法后,我从嘲笑我感兴趣的嘲讽方法的结果。
这可能吗?