unit-testing - Springboot,Powermockito,未能模拟静态方法
问题描述
首先,我很抱歉询问源代码。
MOCK静态方法的最简单方法是什么?
互联网上提供的所有建议都因初始化而失败
包 com.example.demo;
import java.net.InetAddress;
import java.net.UnknownHostException;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class DemoApplication {
public static String getHostname() throws UnknownHostException {
return InetAddress.getLocalHost().getHostName();
}
public static boolean getValid() throws UnknownHostException {
System.out.println(getHostname());
return false;
}
DemoApplication() {
}
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}
在上面的源代码中,我想测试 getValid() 方法,同时模拟 getHostName()
解决方案
Jmockit解决方案:
public Class DemoApplicationTest {
@Tested
public DemoApplication app;
@Test
public void testGetValid() {
new Expectations(app) {{
DemoApplication.getHostname();
times=1;
result = "example.org";
}};
final boolean res = DemoApplication.getValid();
assertFalse(res);
}
推荐阅读
- snmp - Wireshark 捕获的 SNMP 流量,但源端口和目标端口相同
- python - Django - 如何根据多列对多条记录进行分组
- css - 鼠标离开时悬停动画抖动(使用 CSS 过渡和变换)
- angular - 保护路由以使用刷新令牌
- angular - Intl-tel-input 代码区域自动设置,无需使用 geoIpLookup
- python - 如何在 Python 中为数据透视表填充缺少的多列和多行?
- ruby-on-rails - 如何解决heroku上的elasticsearch index not found错误?
- sapui5 - sapui5 vizframe 图到 pdf 问题
- gstreamer - GStreamer:VBI数据流解码
- java - 从未发送过 Google Play 游戏服务消息