我正在开发一个Spring MVC项目,并对源代码树中的所有组件进行了单元测试。单元测试与Spring的集成测试
例如,如果我有一个控制器HomeController
,这需要有一个LoginService
注入,然后在我的单元测试HomeControllerTest
我简单地实例化对象为正常(春之外),并注入属性:
protected void setUp() throws Exception {
super.setUp();
//...
controller = new HomeController();
controller.setLoginService(new SimpleLoginService());
//...
}
这很适合作为一个独立单元测试每个组件 - 除非现在我在项目中有几十个类,写了一个类并为它写了一个成功的单元测试之后,我一直忘记更新我的Spring MVC上下文文件,用于在部署的应用程序中进行实际配线。我发现当我将项目部署到Tomcat并从非布线Bean中找到一堆NullPointers时,我忘记了更新上下文文件。
所以,这里是我的问题:
这是我的第一个春天项目 - 是正常的,创造个人豆单元测试,因为我已经做了,然后创建一个测试的第二套房(集成测试)来测试一切如实际应用程序上下文一样工作?这是否有一个确定的最佳实践?
另外,如何将单元测试与集成测试分开?我有
src
的所有源代码,单元测试test
- 是否应该有用于集成测试用例的第二个测试文件夹(如test-integration
)?
因为这是我的第一个Spring项目,我很好奇别人怎样通常去这样做这样的事情 - 和而不是重新发明轮子我宁愿叫社会的其余部分。
这听起来像一个很好的策略。但是在单元测试和集成测试在同一个目录中,Eclipse没有办法让它们分开,是吗? Eclipse运行junit测试的唯一选项是运行一个或全部运行在某个文件夹中 - 不能像Ant那样通过名称来分割它们。 – 2008-11-11 19:22:38
我必须回去检查Eclipse - 你是对的,如果它们在同一个目录下,我没有看到区分测试的方法。我上一个Spring项目是在Idea/Intellij中完成的,并且已经足够长,我不记得IDE配置是什么。 – 2008-11-11 22:55:10