gpt4 book ai didi

unit-testing - 我是否应该通过单元测试覆盖代码,即使它已经被集成测试覆盖?

转载 作者:行者123 更新时间:2023-12-04 05:20:16 26 4
gpt4 key购买 nike

假设我们有一些带有 REST API 的 Web 服务,为了说明,有一些与数据库有关的工作。在我看来,测试这个应用程序的最基本方法是集成测试,它从 REST API 顶部测试它以验证它是否完全正常工作。但是使用一些模拟技术的单元测试呢?在专业开发中(当然人力资源有限)是否真的有必要用单元测试来覆盖代码,即使它已经被集成测试覆盖了?

谢谢

最佳答案

好问题。当然,答案将基于意见,但希望它们基于实际的现实世界经验。

就我而言,多年来我已经编写了数千个 JUnit/TestNG 测试,并且我碰巧为 Java 开发了一个高级测试库(模拟 + 代码覆盖率 + 集成测试)。

因此,IMO,当您已经拥有一个好的集成测试套件时,编写单元测试是没有必要的,而且效率也不高。

当然,集成测试确实需要更长的时间才能运行,但它们仍然应该足够快,以至于不会阻止开发人员运行它们。这很重要:如果开发人员在开发新代码或修改时仍然可以高效地运行一个测试、一个测试类等,那就没问题了。因此,避免使测试执行太慢/痛苦的集成测试方法(例如,Selenium)。

对集成测试的另一个批评是它们使找出测试失败的根本原因变得更加困难。然而,这在实践中并不是一个足够大的问题。

Martin Fowler 在他的 Unit Test 中提出了同样的两点。文章。

关于unit-testing - 我是否应该通过单元测试覆盖代码,即使它已经被集成测试覆盖?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42497345/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com