本文介紹了使用Mockito跳過行的執(zhí)行的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!
問題描述
我正在使用moockito進行單元測試,我想跳過一行。
// method I am testing
public String doSomeTask(String src, String dst) {
// some code
utils.createLink(src,dst);
// some more code
}
// utils class
public void createLink(String src, String dst) {
// do something
Path realSrc = "/tmp/" + src;
Files.createSymbolicLink(realSrc, dst);
// do something
}
// Test class
@Mock
private Utils utils;
@Test
public void testDoSomeTask() {
// this does not seem to work, it is still executing the createLink method
doNothing.when(utils).createLink(anyString(), anyString());
myClass.doSomeTask(anyString(), anyString());
}
現(xiàn)在,createLink
是一個無效方法,在我的測試過程中,由于異常原因AccessDenied
創(chuàng)建目錄失敗。
我想跳過第utils.createLink(src,dst);
行,然后繼續(xù)下一行。有什么方法可以讓Mockito這么做嗎?
推薦答案
假設(shè)可以使用setter設(shè)置utils
變量,則可以窺探Utils
類對象并重寫其createLink()
方法。
基本思想是:
Utils utils = new Utils();
Utils spyUtils = Mockito.spy(utils);
doNothing().when(spyUtils).createLink(any(String.class), any(String.class));
現(xiàn)在,通過setter設(shè)置此spyUtils
對象。每次調(diào)用createLink
時,它不執(zhí)行任何操作。
這篇關(guān)于使用Mockito跳過行的執(zhí)行的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,