2 回答

TA貢獻(xiàn)1816條經(jīng)驗(yàn) 獲得超6個(gè)贊
您應(yīng)該只模擬您擁有的類型,因此,如果您想模擬對(duì) 的調(diào)用Thread.sleep()
,您應(yīng)該將其提取到您擁有的類型(例如ThreadSleeper
)中,因此可以模擬。更好的是,如果可以的話,重寫以避免睡眠。睡眠通常是一種代碼氣味(偷工減料)。

TA貢獻(xiàn)1963條經(jīng)驗(yàn) 獲得超6個(gè)贊
你不應(yīng)該嘲笑你不擁有的類型。但如果你還必須這樣做,你可以這樣做
@RunWith(PowerMockRunner.class)
@PrepareForTest({<ClassWherewaitForUpscaleFunctionisLocated>.class, Thread.class})
public class Mytest {
? ? @Test
? ? public void testStaticVoid() throws Exception {
? ? ? ? PowerMockito.mockStatic(Thread.class);
? ? ? ? doNothing().when(Thread.class, "sleep", anyLong());
? ? ? ? .........
? ? }
}
添加回答
舉報(bào)