当模拟包私有抽象超类中的公共方法时,实际的逻辑在运行是因为模拟对象的行为是基于实际对象的行为进行模拟的。
在面向对象编程中,抽象类是一种不能被实例化的类,它定义了一组抽象方法和非抽象方法,供子类继承和实现。包私有抽象超类是指在包内部可见的抽象超类。
当我们使用模拟对象进行单元测试时,我们可以使用模拟框架来模拟对象的行为。模拟框架可以创建一个模拟对象,该对象具有与实际对象相同的接口和行为。我们可以通过模拟对象来调用公共方法,并期望它们执行特定的逻辑。
然而,当模拟包私有抽象超类中的公共方法时,实际的逻辑仍然会运行。这是因为模拟框架只能模拟对象的行为,而无法模拟对象的实现细节。包私有抽象超类的公共方法在实际对象中具有具体的实现,模拟框架无法改变这个实现。因此,当我们调用模拟对象的公共方法时,实际的逻辑仍然会被执行。
总结起来,当模拟包私有抽象超类中的公共方法时,实际的逻辑在运行是因为模拟框架只能模拟对象的行为,而无法改变对象的实现细节。
领取专属 10元无门槛券
手把手带您无忧上云