Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Maven Spring项目-在不';不包括网页_Spring_Testing_Maven_Junit - Fatal编程技术网

Maven Spring项目-在不';不包括网页

Maven Spring项目-在不';不包括网页,spring,testing,maven,junit,Spring,Testing,Maven,Junit,Application-context.xml位于web模块中 pom -用户 -具有业务逻辑和DAO的各种其他模块 -web只依赖于服务层。只和你的朋友说话。 Web将用户作为依赖项。我(不应该)不能让依赖关系改变方向,因为它是循环的,所以如何使用web中的应用程序上下文进行测试 我是: 1.是否复制数据源信息的应用程序上下文?(代码气味) 2.是否将DB应用程序上下文放在依赖项链底部的hibernate依赖项项目中? 三,。还有别的答案吗 2号似乎是最好的选择。当所有的东西都在一个服务模块中

Application-context.xml位于web模块中

pom
-用户
-具有业务逻辑和DAO的各种其他模块
-web只依赖于服务层。只和你的朋友说话。

Web将用户作为依赖项。我(不应该)不能让依赖关系改变方向,因为它是循环的,所以如何使用web中的应用程序上下文进行测试

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

2号似乎是最好的选择。当所有的东西都在一个服务模块中时,我让测试工作正常,但我正试图变得更加模块化,所以我将特定于用户的服务重构为一个单独的模块

谢谢你的建议。 实际上,我选择在web和模块之间添加一个称为服务的层,而不是在模块层中添加服务。我不认为这是典型的,但它提供了更好的信息隐藏,并有助于强制执行打开/关闭。它与这个场景无关,所以我没有包括它

工具:

  • 智能J 11
  • 朱尼特
  • 马文2
  • 冬眠3
  • 春天3
  • MySql5.5

将为用户模块执行依赖项注入的上下文文件放在模块内部。记住,在spring中,您可以有很多上下文文件,并且可以导入它们


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

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

Ok。但是如果也有一个文章模块会怎么样(我应该澄清一下,会有很多模块需要数据库)然后,我猜在重构演讲中,我想按照我的问题中的第二个问题,调出数据源和会话工厂?我留下了我选择的解决方案的答案。仍然对更多的输入感兴趣。我在这个堆栈上所做的开发工作是专业的,我没有做过那么多的测试,所以我从来没有遇到过这个问题。