[英]How to mock local variable in a static method of a private java class?
我正在為類“Util”中的靜態方法“updateStatusOfModel”編寫單元測試,其構造函數是私有的。
這個靜態方法實例化一個局部變量 dbManager 如下:
ActivationDBManager dbManager = new ActivationDBManager();
這個 dbManager 用於調用我必須模擬的方法。
我對此進行了如下嘲笑,但不知何故,它不起作用。 單元測試沒有為 ActivationDBManager 選擇模擬對象。
任何幫助表示贊賞。
@Test
@PrepareForTest(Util.class)
void updateStatusModel() throws Exception {
ActivationDBManager mockdbManager = Mockito.mock(ActivationDBManager.class);
PowerMockito.whenNew(ActivationDBManager.class).withNoArguments().thenReturn(mockdbManager);
PowerMockito.doNothing().when(mockdbManager).updateDBStatus(Mockito.anyString(), Mockito.anyString(), Mockito.anyString(), Mockito.anyString());
Util.updateStatus("", "", "", "");
}
Util.updateStatus 是一個靜態方法。
您應該將ActivationDBManager
添加到@PrepareForTest
,因為您正在操縱其字節碼(使用whenNew
)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.