我知道如何使用PowerMock从类中模拟静态方法 但是我想使用JUnit和PowerMock在测试类中使用多个类来模拟静态方法。
任何人都可以告诉我是否可以这样做以及如何做到这一点?
答案 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)