单元测试与 Spring 集成测试
我正在处理一个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。
所以,这是我的问题:
这是我的第一个Spring项目 - 像我所做的那样,为单个Bean创建单元测试,然后创建第二套测试(集成测试)来测试实际应用程序上下文中一切是否按预期工作?是否有既定的最佳实践?
此外,如何将单元测试与集成测试区分开来?我在 ,单元测试中拥有所有源代码 - 是否应该有第二个测试文件夹(如 )用于集成测试用例?
src
test
test-integration
由于这是我的第一个春季项目,我很好奇其他人通常如何做这种事情 - 而不是重新发明轮子,我宁愿问社区的其他人。