我想寫一個測試用例來驗證我的類中的方法。 我在我的方法中有一個本地ApplicationLauncher
對象,因爲它調用方法launch()
,因此它不得不被模擬,因爲它不應在單元測試中調用。模擬靜態方法
public class RunApp
{
public void check(String name)
{
if(name !=null)
{
ApplicationLauncher launcher = Application.getLauncher("launch");
String appName = name+".bat";
launcher.launch(appName);
}
}
}
我的JUnit測試代碼如下:
RunApp runapp = new RunApp();
@Mock
ApplicationLauncher launcher;
@Test
public void test()
{
runapp.check("test");
verify(launcher,atLeastOnce).launch(anyString());
}
我無法返回像
when(Application.getLauncher(anyString())).thenReturn(launcher);
模仿對象,因爲getLauncher
是Application
類的靜態方法。我該如何解決這個問題?