我已经用 UnitTests 介绍了我的类的内部实现。现在测试我的公共接口是否仍然有用(这是一个比对内部方法的调用链多一点的函数)?
感觉就像我会添加额外的测试来测试相同的东西。
或者测试公共接口更像是一个集成测试(即使我已经对我的数据访问进行了存根处理,所以它都在内存中处理)以测试所有 UnitTested 方法是否可以很好地协同工作?
例子:
internal bool internalCheck() {
// complex logic that is being unit tested
}
internal void internalDoSomething() {
// do stuff. is being unit tested
}
public void DoIt() {
if (internalCheck()) {
internalDoSomething();
}
}
现在,如果我要添加 test 的测试DoIt
,我基本上会重新测试所有逻辑流,internalCheck
并断言当它返回 true 时,internalDoSomething
正在调用。
嗯,我想我已经弄清楚了:我需要模拟类本身并检查是否进行了正确的调用,几乎忽略了实际的输入/输出。为了测试公共方法,而不是重新测试internalCheck
,我使用了一个模拟框架来internalCheck
返回我想要测试的流程,然后验证是否调用了正确的方法。