Java 测试还是不测试?

Java 测试还是不测试?,java,unit-testing,continuous-integration,automated-tests,integration-testing,Java,Unit Testing,Continuous Integration,Automated Tests,Integration Testing,今天我开始一个项目,我必须将后端分成两部分,我不知道后端到底做什么,只是我必须将特定的服务转移到新泽西州的新泽西州的新春市的maven多模块项目中 因此,迁移的任务非常简单,现在是编写测试的时候了。以前,该项目没有任何测试 当我开始从我的业务对象编写JUnits时,我发现大多数服务只使用DAO执行基本操作,如getAll、get、save、update和delete。其他服务得到了业务验证,但不是comlpex 因此,这些问题更具理论性: 我是否应该编写JUnits来测试将被模拟的简单DAO g

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

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

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

因此,这些问题更具理论性:

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

单元和集成测试是针对开发人员的,因此,如果您觉得某些开发人员不会从测试中受益,请不要编写它。也要考虑测试验证行为,而不是代码,所以如果你没有看到任何需要测试的行为,不要花时间。p> 在您的情况下,我最多为服务编写集成测试,也可能为DAO编写集成测试(如果没有ORM)

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

两个例子:

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

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

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

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