0

我已经用 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返回我想要测试的流程,然后验证是否调用了正确的方法。

4

1 回答 1

0

这取决于您如何定义您的单位。通常是类,所以这仍然是一个单元测试。

即使您已经测试了内部方法,测试公共接口仍然很重要,以确保内部方法可以协同工作。

于 2013-04-15T12:52:32.747 回答