如何解决带有静态方法的类的 JUnit,返回类型为 String 和 void
下面是我的类,它具有静态方法..一个带有 void ,另一个带有 String 作为返回类型.. 使用 PowerMockito.spy() to doNothing for void 方法正在工作.. 但是对于 String 方法它不起作用..任何帮助/建议将不胜感激..
****************************************************************************
public class ServiceImpl {
public static String getName(){
// some business logic
Utils.doSomething();
String result = Utils.getName();
return result;
}
}
****************************************************************************
public class Utils {
public static void doSomething(){
// some DB business logic
}
public static String getName(){
// some business logic
return "Static String";
}
}
****************************************************************************
PowerMockito.spy(Utils.class);
PowerMockito.doNothing().when(Utils.class); // working
PowerMockito.when(Utils.getName()).thenReturn("TESTER"); // not working
解决方法
它对我来说是这样的:
@RunWith(PowerMockRunner.class)
@PrepareForTest(Utils.class)
public class SimpleTest {
@Test
public void test() throws Exception {
PowerMockito.spy(Utils.class);
PowerMockito.doNothing().when(Utils.class,"doSomething"); // add method name
PowerMockito.when(Utils.getName()).thenReturn("TESTER");
assertEquals("TESTER",ServiceImpl.getName());
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。