java - 用于私人参考和地图的 Junit 测试用例
问题描述
我正在尝试学习junit测试和mockito。如果有地图和私有方法引用,我想知道如何编写测试用例。
@Autowired
AppProps props;
public Foo checkStatus(){
Foo foo = new Foo();
foo.setStatus("Up");
Map<String,List<String>> childStatusList = getChildStatus();
foo.setChildStatus(childStatusList);
return foo;
}
private Map<String,List<String>> getChildStatus(){
Map<String,List<String>> healthMap = new LinkedHashMap<>();
String url = "https://google.com";
for(Entry<Integer,List<String>> entrySet: props.getMap().entrySet()){
for(String str : entrySet.getValue()){
healthMap.put("Up", Arrays.asList(url));
}
}
}
解决方案
关于单元测试,您必须了解的第一件也是最重要的事情是:
单元测试不测试代码。
单元测试验证公共可观察行为,即返回值和与依赖项的通信。
任何使用Jailbreak或PowerMock的尝试都只是对错误设计决策的投降。
推荐阅读
- javascript - 居中的 div 没有正确溢出
- javafx - JavaFX 我应该如何构建我的包?
- vba - 日期过滤器通过Excel VBA隐藏所有单元格
- python - 引发异常后如何重新启动 PyQt 应用程序
- node.js - 在节点中构建我的 Web 服务器
- javascript - 如何在 Vuex 商店创建后手动添加 getter/mutations?
- grpc - 是否可以使用 ngrok 或 localtunnel 来测试本地 gRPC 服务器?
- r - 如何在geom_tile ggplot中移动瓷砖右/左端的刻度线和标签?
- angular - noUnusedLocals 在函数中不起作用*
- python-3.x - 具有 keras 和可变输入大小的深度学习 (lstm)