ฉันรู้วิธีจำลองวิธีการแบบคงที่จากคลาสโดยใช้ PowerMock
แต่ฉันต้องการจำลองวิธีการแบบคงที่จากหลายคลาสในคลาสทดสอบโดยใช้ JUnit และ PowerMock
ใครช่วยบอกทีว่าทำได้ไหมและต้องทำอย่างไร
ฉันรู้วิธีจำลองวิธีการแบบคงที่จากคลาสโดยใช้ PowerMock
แต่ฉันต้องการจำลองวิธีการแบบคงที่จากหลายคลาสในคลาสทดสอบโดยใช้ JUnit และ PowerMock
ใครช่วยบอกทีว่าทำได้ไหมและต้องทำอย่างไร
คำตอบ:
เพียงแค่ทำ@PrepareForTest({Class1.class,Class2.class})
หลายชั้นเรียน
@RunWith(PowerMockRunner.class)
ในระดับชั้นเรียน
@Rule public PowerMockRule rule = new PowerMockRule();
@PrepareForTest(Class1::class, Class2::class))
@PrepareOnlyThisForTest
@PrepareForTest
หลังยังปรับเปลี่ยน superclasses ซึ่งปกติไม่จำเป็น
@Test
@PrepareForTest({Class1.class, Class2.class})
public final void handleScript() throws Exception {
PowerMockito.mockStatic(Class1.class);
PowerMockito.mockStatic(Class2.class);
ฯลฯ ...
PowerMock 1.6.5
ที่มีปัญหาในการใช้@PrepareForTest
ในระดับวิธี (ใช้ได้เฉพาะในระดับชั้นสำหรับฉัน)
ใน java ด้วย powermock / junit ให้ ใช้@PrepareForTest({})
กับคลาสคงที่มากเท่าที่คุณต้องการเป็น array ( {}
)
@RunWith(PowerMockRunner.class)
@PrepareForTest({XmlConverterA.class, XmlConverterB.class})
class TransfersServiceExceptionSpec {
}
ฉันใช้powermock กับใน scala / junit แล้วเนื่องจาก scalatest ไม่มีการรวมกับ powermock
@RunWith(classOf[PowerMockRunner])
@PrepareForTest(Array(classOf[XmlConverterA], classOf[XmlConverterB]))
class TransfersServiceExceptionSpec {
@Test
def test() {
}
}
หากคุณใช้ kotlin ไวยากรณ์จะเป็นดังนี้
@PrepareForTest(ClassA::class, ClassB::class)