测试还是不测试?

时间:2016-04-08 23:47:29

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

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

所以,移动的任务非常简单,现在是编写测试的时候了。以前,该项目没有任何测试。

当我开始从我的Business Objects编写JUnits时,我看到,大多数服务只使用DAO执行基本操作,如getAll,get,save,update和delete。其他服务得到了商务验证,但它不是comlpex。

所以这些问题更具理论性:

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

1 个答案:

答案 0 :(得分:0)

单元和集成测试适用于开发人员,因此如果您不想让某些开发人员从测试中受益 - 请不要编写它。还要考虑测试验证行为,而不是代码,因此如果您没有看到任何需要测试的行为 - 请不要花时间。

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

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

两个例子:

1)CRUD风格的小型网站管理员面板,只有一个开发人员同时引入变更,几乎没有业务逻辑。错误的存在是非关键的。

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

2)您正在开始一个复杂的项目,目前处于CRUD风格,但远程服务/ DAO之间存在交互,业务逻辑在某些时候趋于变得复杂。团队正在迅速发展/变化,不止一个人参与其中,新开发人员无法理解系统如何轻松运行。错误的存在对业务不利。

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