Maven Spring Project - 在不包含web的模块中使用application-context.xml测试daos

时间:2012-11-17 23:24:01

标签: spring testing maven junit

Application-context.xml位于Web模块

POM
- 用户
- 具有业务逻辑和daos的各种其他模块
- web 仅取决于服务层。只与你的朋友交谈。

Web将用户作为依赖项。我(不应该)不能使依赖性反过来因为它是循环的,所以如何使用web中的应用程序上下文进行测试?

我是否:
1.复制数据源信息的应用程序上下文? (代码味)
2.将数据库应用程序上下文放在依赖关系链底部的hibernate依赖项目中?
3。还有其他答案吗?

2号似乎是最好的选择。当所有内容都在服务模块中时,我的测试工作正在进行,但我试图获得更多的模块化,因此我将用户特定的服务重构为一个单独的模块。

感谢您的任何想法。 实际上,我选择在Web和模块之间添加一个层,也称为服务,而不是在模块层中提供服务。我不认为这是典型的,但它提供了更好的信息隐藏,并有助于强制开放/关闭。它与这种情况无关,所以我没有把它包括在内。

工具:

  • Intellij 11
  • 的Junit
  • Maven 2
  • Hibernate 3
  • 春季3
  • MySql5.5

2 个答案:

答案 0 :(得分:0)

在模块本身内放置为用户模块执行依赖项注入的上下文文件。请记住,在春天你可以有很多上下文文件,你可以导入它们。

要理解这背后的原因,请问自己:我的应用程序的Web部分是需要数据库还是需要数​​据库的后端?

答案 1 :(得分:0)

我最终在单位和web之间使用服务模块来存储db上下文。 Web依赖于它,Web级应用程序上下文包括模块上下文和测试。我正在该层上进行服务级别集成测试。单元测试将使用模拟对象或hql来消除单元本身之外的任何内容。