下面将更详细地介绍我在上一篇文章中已经讲过的内容。
在必须开发新功能的旧版Spring应用程序中,我经常偶然遇到一大障碍,这会减慢我的集成测试工作。 这个障碍(我将其命名为反模式)是将每个bean放在相同的配置文件中 (以XML或Java形式)。
正确的方法是在专用配置组件中至少定义以下Bean:
- 数据源)
- 邮件服务器
- 外部网络服务
- 每个不属于上一类的应用程序依赖项
根据特定的上下文,我们应该在测试配置片段中提供备用bean。 这些替代方案可以是模拟豆或双打测试 。 在第一种情况下,我建议使用基于Mockito的Springockito框架 。 在第二种情况下,工具取决于特定的资源:用于数据源的内存数据库(例如HSQLDB , Derby或H2 * )和用于邮件服务器的GreenMail 。
由应用程序和每个测试负责组装不同的所需配置片段以初始化完整的Spring应用程序上下文。 请注意,将片段耦合在一起也不是一个好主意。
\ *这些天我个人偏向H2
翻译自: https://blog.frankel.ch/modularity-in-spring-configuration/