我已经用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();
}
}
现在,如果我要添加测试DoIt
的测试,我基本上会重新测试internalCheck
的所有逻辑流程并断言当它返回true时,internalDoSomething
正在调用。
嗯,我想我已经弄明白了:
我需要模拟类本身并检查正确的调用,几乎忽略了实际的输入/输出。要测试公共方法,而不是重新测试internalCheck
,我使用模拟框架让internalCheck
返回我想要测试的流,然后验证是否已调用正确的方法。
答案 0 :(得分:0)
这取决于您如何定义单位。通常是类,所以这仍然是一个单元测试。
即使您已经测试了内部方法,测试公共接口仍然很重要,以确保内部方法协同工作。