为什么要同时进行单元测试和功能测试
Why do both unit and functional tests
我正在为我的 restful 应用程序进行广泛的功能测试,因为该应用程序遵循休息原则,所以开销很小。我想不出我还应该投入时间和精力进行 writing/testing 单元测试的具体原因。我错过了一个明显的点吗?
如果您的功能测试失败了,您通常不得不花时间通过调用链来查找导致失败的代码块。当单元测试失败时,您会立即准确地知道失败的位置。这可以节省您的时间。
也许更重要的是,这可以节省队友的时间。根据我过去 3 年在许多不同团队工作的经验,当别人的功能测试失败时,我需要一段时间才能理解代码。单元测试 OTOH 通常非常小且非常容易理解。我通常可以比基于功能测试失败更快地解决基于单元测试失败的回归。
此外,单元测试通常 运行 比功能测试快得多,给你一个更紧密的反馈循环。
归根结底,你不会因为严格遵守别人确立的教条而赢得加分。您的目标是编写高质量的软件。如果您可以在特定情况下仅通过编写功能测试来做到这一点,那就继续吧。单元测试在很多软件项目中都是一个好主意,但它们不是万灵药。
我正在为我的 restful 应用程序进行广泛的功能测试,因为该应用程序遵循休息原则,所以开销很小。我想不出我还应该投入时间和精力进行 writing/testing 单元测试的具体原因。我错过了一个明显的点吗?
如果您的功能测试失败了,您通常不得不花时间通过调用链来查找导致失败的代码块。当单元测试失败时,您会立即准确地知道失败的位置。这可以节省您的时间。
也许更重要的是,这可以节省队友的时间。根据我过去 3 年在许多不同团队工作的经验,当别人的功能测试失败时,我需要一段时间才能理解代码。单元测试 OTOH 通常非常小且非常容易理解。我通常可以比基于功能测试失败更快地解决基于单元测试失败的回归。
此外,单元测试通常 运行 比功能测试快得多,给你一个更紧密的反馈循环。
归根结底,你不会因为严格遵守别人确立的教条而赢得加分。您的目标是编写高质量的软件。如果您可以在特定情况下仅通过编写功能测试来做到这一点,那就继续吧。单元测试在很多软件项目中都是一个好主意,但它们不是万灵药。