我正在 TDD 中使用 mockito 编写一个新类( Derived
),我有以下情况:
类(class)基础:
public abstract class Base<T>{
//.......
protected final T baseCreate(T entity){
// implementation
}
}
派生类(这是我使用 TDD 编写的类):
public class Derived extends Base<MyObject> {
//.......
public MyObject create(MyObject entity){
baseCreate(entity); //This is what I want the implementation to be
}
}
当我开始编写测试时,它会强制我调用
baseCreate
方法 - 我不明白如何做到这一点。有没有办法使用mockito来验证
create(...)
中的Derived
方法调用了baseCreate(...)
类中的Base
方法?谢谢。
最佳答案
单元测试是为了测试类的行为,而不是它的实现。所以你不应该关心 Base
的 baseCreate()
是否被显式调用,而是调用 Derived
的 cerate()
是否完全符合你从外部观察者的角度所期望的