使用PowerMock模拟来自多个类的静态方法

时间:2012-04-26 05:17:57

标签: java junit4 powermock

我知道如何使用PowerMock从类中模拟静态方法 但是我想使用JUnit和PowerMock在测试类中使用多个类来模拟静态方法。

任何人都可以告诉我是否可以这样做以及如何做到这一点?

4 个答案:

答案 0 :(得分:230)

为多个班级做@PrepareForTest({Class1.class,Class2.class})

答案 1 :(得分:10)

@Test
 @PrepareForTest({Class1.class, Class2.class})
 public final void handleScript() throws Exception {
    PowerMockito.mockStatic(Class1.class);
    PowerMockito.mockStatic(Class2.class);

等...

答案 2 :(得分:2)

在带有powermock / junit的java中,使用func funcThatExpectsIntOptional(_: Int?) {} let x: Optional<String> = "An optional string" // Without its generic type parameter, this is an incomplete type. suppose this were valid let y = x as! Optional funcThatExpectsIntOptional(y) // boom. 和任意数量的静态类作为数组(@PrepareForTest({}))。

{}

我在scala / junit中使用了 powermock,,因为scalatest没有与powermock集成。

@RunWith(PowerMockRunner.class)
@PrepareForTest({XmlConverterA.class, XmlConverterB.class})
class TransfersServiceExceptionSpec {

}

答案 3 :(得分:0)

如果您使用的是kotlin,语法就是这样

@PrepareForTest(ClassA::class, ClassB::class)