java - 如何使用对超类方法的嵌套调用对方法进行单元测试?
问题描述
我的项目中有 Java 8、JUNIT 和 Mockito,但我仍在学习单元测试艺术。所以需要你的帮助。
在我的场景中-->class B extends Class A
CLass B 包含一个公共方法mOfB()
CLass A 包含一个方法mOfA()
我想 JUnit 我的方法mOfB()
。
mOfB()
包含对mOfA()
. 并mOfA()
返回一个List<Employee>
Employee
是一个在原始数据类型中具有很少属性的对象,并且Map<Depts, CostCentre>
我应该如何在这里进行 JUnit 测试?
解决方案
免责声明:就像@Chris 在他的评论中提到的那样,最好在 B 类中包含对 A 类的引用。
话虽如此,您可以做的一个技巧是将您自己的代码提取到 B 类中的不同方法并进行测试。改变这个:
class B {
@Override
String methodInheritedFromA() {
return "ABC" + super.methodInheritedFromA();
}
}
进入:
class B {
@Override
String methodInheritedFromA() {
return classBFunctionality() + super.methodInheritedFromA();
}
String classBFunctionality() {
return "ABC";
}
}
和测试classBFunctionality
方法而不是methodInheritedFromA
。
推荐阅读
- javascript - Javascript如何将文件路径传递给API进行转换
- reactjs - axios 获取的集成测试,当我在 jest 的 `it` 函数中应用 `done` 作为回调时失败
- node.js - 在 Laravel 项目上运行节点时运行 GIT 命令
- python - 如果嵌套列表中不存在元素,如何有效地检查和添加?
- powerbi - Power BI 用 0 替换(空白),没有计算列
- c++ - 从 docker image build 中省略设置文件
- json - 从端点返回数据时的最佳实践?
- github - 如何构建 devops 脚本以使用 gulp 构建和部署 github 页面?
- ionic-framework - Ionic 4 + WhatsApp 分享 - 在我分享我的信息后获取接收者/联系方式
- c - 为什么不能在数组中分配多个字符?