我不能说是一种最佳实践,但这是我过去所做的事情。
单元测试:
- 为非平凡的bean创建单元测试(即,大多数与Spring相关的bean)
- 在可行的情况下(例如,即使不是全部时间也可以使用),将Mocks用于注入服务。
- 在项目
test
目录中为这些测试使用标准命名约定。使用Test
或TestCase
作为类名的前缀或后缀似乎已被广泛实践。
集成测试:
- 创建一个
AbstractIntegrationTestCase
设置Spring
WebApplicationContext
用于完整性测试案例的。 - 对
test
目录中的集成测试使用命名约定。我已经将这些测试用作IntTest
或IntegrationTest
作为前缀或后缀。
设置三个Ant
test目标:
- 全部测试(或任何您想命名的):运行单元测试和集成测试
- 测试:运行单元测试(只是因为这
test
似乎是单元测试的最常用用法 - 测试集成:运行集成测试。
如前所述,您可以使用对项目有意义的命名约定。
至于将单元测试与集成测试分离到一个单独的目录中,只要开发人员 及其工具 能够轻松找到并执行它们,我认为这并不重要。
例如,我与Spring合作的最后一个Java项目完全使用了上面描述的内容,集成测试和单元测试位于同一
test目录中。另一方面,Grails项目将常规测试目录下的单元测试目录和集成测试目录明确分开。



