单元测试复合功能

joe*_*joe 3 testing unit-testing

假设您有3个功能,即功能A,功能B和功能C

functionC依赖于functionA和functionB

functionA(a) {
    return a
}
functionB(b) {
     return b
}
functionC(a, b){
     return functionA(a) + functionB(b);
}
Run Code Online (Sandbox Code Playgroud)

现在,这显然是一个超级简化的示例..但是,测试functionC的正确方法是什么?如果我已经在测试functionA和functionB,并且它们通过了,就不会测试functionC,而不仅仅是单元测试,因为它将依赖于functionA和functionB返回。

Gho*_*ica 5

对于前两个功能,您将专注于其公共合同-您将编写所需数量的测试,以确保不同情况下的所有结果均符合预期。

但是对于第三个功能,了解该功能应调用其他两个功能可能就足够了。因此,您可能需要较少的测试。您无需再次测试测试A和B所需的所有情况。您只想验证C负责的预期“管道”。