首页 > 解决方案 > 如何使用对超类方法的嵌套调用对方法进行单元测试?

问题描述

我的项目中有 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 测试?

标签: javajunit

解决方案


免责声明:就像@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


推荐阅读