我应该在弹簧项目中包含系统测试吗?
-
14-11-2019 - |
题
我的Spring Web项目包括:
- util类;
- 存储库;
- 服务;
- 控制器。
测试如下:
- Util类的单元测试;
- HSQLDB存储库的弹簧集成测试;
- 与模拟存储库的服务单元测试;
- 用模拟服务的控制器单元测试。
还可以是测试整体项目功能的系统测试。它可以用硒等外部工具进行,或者可以使用弹簧积分测试来执行。
问题是,我应该在项目中包含这样的弹簧集成系统测试,还是应该以某种方式分开它们?
我看到一个关于项目中的系统测试的两个问题: 1.他们需要配置调整,因为此类测试不会使用生产配置(例如,测试需要一个本地数据源,而不是来自JNDI的那个); 他们不自主,他们需要一些外部资源等。我不能像往常一样运行它们。
如何组织系统测试?
解决方案
在小项目上,我把它们放在同一个地方。关于大型企业项目(例如,您可能有用的速度杠杆杠杆的类型)我们通常在单独的包/项目中组织系统测试。这有助于将它们与主码字分开。
如果您不这样做,则会将各种诱惑从代码中重用到“帮助外面”,以“帮助OUT”,这些内容应该更强烈地专注于系统用户的经验(用户可能是另一个系统)。如果发生这种情况,您最终会耦合项目域类和UI之间的耦合,这将具有不可避免的效果,需要重复大部分逻辑,这有助于将它们保持在实际代码库中。
大部分时间系统场景中的逻辑实际上将专注于页面,屏幕,网络呼叫等。因此,来自主项目的重用代码是红鲱鱼。保持包分开以避免发生这种情况,因为一旦你避免发生这种情况,就没有必要在同一个地方拥有它们。 但是,请确保将系统测试签到与代码相同的版本控制。
如果您还没有执行持续集成和测试/部署,可能是某些学习将帮助您使用配置文件的另一个区域。不幸的是,那个问题不仅仅是因为在一个单独的项目中进行了测试。
不隶属于 StackOverflow