【问题标题】:Test or not test?测试还是不测试?
【发布时间】:2016-04-08 23:47:28
【问题描述】:

今天我开始了一个项目,我必须将一个后端分成两部分,我不知道后端到底是做什么的,只是我必须将特定服务移动到新的 spring、jersey、maven 多模块项目中。

因此,迁移任务非常简单,现在是时候编写测试了。此前,该项目没有任何测试。

当我开始从我的 Business Objects 编写 JUnit 时,我发现大多数服务仅使用 DAO 执行基本操作,例如 getAll、获取、保存、更新和删除。其他服务通过了商务验证,但并不复杂。

所以问题更具理论性:

我是否应该编写 JUnit 来测试一个简单的 DAO 获取,该获取将被模拟(无集成测试),这样做的好处是什么? 这将是对简单 DAO get、getAll 或 create 进行集成测试的正确方法(之前没有任何验证要执行的创建)

【问题讨论】:

    标签: java unit-testing continuous-integration automated-tests integration-testing


    【解决方案1】:

    单元和集成测试是为开发人员准备的,所以如果您不认为某些开发人员会从测试中受益 - 不要编写它。还要考虑测试验证行为,而不是代码,所以如果你没有看到任何需要测试的行为 - 不要花时间。

    在您的情况下,我最多会为服务编写集成测试,也许还可以为 DAO(如果没有 ORM)编写集成测试。

    无论如何,您问题的正确答案取决于您需要为项目提供的质量水平、团队规模、破坏性代码更改的可能性等。

    两个例子:

    1) 小站点的 CRUD 风格的管理面板,只有一个开发人员同时引入更改,几乎没有业务逻辑。错误的存在并不重要。

    在这种情况下,我不会将时间花在任何测试上 - 很可能您需要专注于其他事情(例如客户端)。

    2) 您正在启动一个复杂的项目,该项目目前采用 CRUD 风格,但存在远程服务/DAO 之间的交互,业务逻辑有时会变得复杂。团队正在迅速成长/变化,多人参与,新开发人员无法轻松理解系统的工作原理。错误的存在对业务不利。

    在这种情况下,我至少会从服务的集成测试开始。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-12-19
      • 2014-09-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多