我的 Spring Web 项目包括:
- 实用类;
- 存储库;
- 服务;
- 控制器。
测试如下:
- 实用程序类的单元测试;
- 使用 HSQLDB 对存储库进行春季集成测试;
- 使用模拟存储库对服务进行单元测试;
- 带有模拟服务的控制器的单元测试。
也可能有测试整个项目功能的系统测试。它可以使用 Selenium 等外部工具执行,也可以使用 Spring 集成测试执行。
问题是,我应该在项目中包含这样的 Spring 集成系统测试,还是应该以某种方式将它们分开?
我发现在项目中包含系统测试有两个问题: 1. 它们需要配置调整,因为这样的测试不会与生产配置一起运行(例如,测试需要本地数据源,而不是来自 JNDI 的数据源);2.他们不是自治的,他们需要一些外部资源等等。我不能像往常一样运行它们的单元测试。
你如何组织你的系统测试?