我正在开发一个Spring MVC项目,我对源代码树中的所有各种组件进行了单元测试.
例如,如果我有一个HomeController需要LoginService注入的控制器,那么在我的单元测试中,HomeControllerTest我只是将对象实例化为正常(在Spring之外)并注入属性:
protected void setUp() throws Exception {
super.setUp();
//...
controller = new HomeController();
controller.setLoginService( new SimpleLoginService() );
//...
}
Run Code Online (Sandbox Code Playgroud)
这对于将每个组件作为一个独立的单元进行测试非常有用 - 除了我在项目中有几十个类,在编写一个类并为它编写成功的单元测试后,我一直忘记更新我的Spring MVC上下文文件部署的应用程序中的实际布线.我发现当我将项目部署到Tomcat并从非有线bean中找到一堆NullPointers时,我忘了更新上下文文件.
所以,这是我的问题:
这是我的第一个Spring项目 - 正如我所做的那样,为单个bean创建单元测试是正常的,然后创建第二套测试(集成测试)来测试一切是否与实际应用程序上下文一致?这是否有既定的最佳实践?
另外,如何将单元测试与集成测试分开?我有所有的源代码src,单元测试test- 应该有第二个测试文件夹(如test-integration)用于集成测试用例?
由于这是我的第一个春季项目,我很好奇其他人通常会做这类事情 - 而不是重新发明轮子我宁愿问社区其他人.