我想编写一个测试用例来验证我班级中的一个方法。我的方法中有一个必须模拟的本地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
类中的静态方法。我该如何解决这个问题?