junit测试框架的使用,spring test junit

  junit测试框架的使用,spring test junit

  一。单元测试介绍单元测试是爪哇中最有名的单元测试框架,用于编写和运行可重复的测试,多数爪哇的开发环境都已经集成了单元测试作为单元测试的工具。好的单元测试能极大的提高开发效率和代码质量。

  测试类命名规则:被测试类测试,如用户服务测试

  测试用例命名规则:测试用例方法,如测试获取

  专家导入junit、sprint-test、json-path相关测试包,并配置梅文-苏尔火-插件插件,编辑pom.xml

  属国

  !-测试单元-

  属国

  groupId junit /groupId

  artifactId junit /artifactId

  版本4.12/版本

  范围测试/范围

  /依赖关系

  属国

  groupId组织。spring框架/groupId

  项目的名称弹簧-测试/artifactId

  版本4.3.10 .发布/版本

  范围测试/范围

  /依赖关系

  !- Json断言测试-

  属国

  groupId com。杰路。JSON路径/groupId

  artifactId json-path /artifactId

  版本2 .4 .0/版本

  范围测试/范围

  /依赖关系

  /依赖关系

  建设

  插件

  !-单元测试插件-

  插件

  groupId组织。阿帕奇。玛文。插件/groupId

  工件id maven-surefire-插件/工件id

  版本2.20/版本

  属国

  属国

  groupId组织。阿帕奇。玛文。surefire/groupId

  工件id surefire-JUnit 4/工件id

  版本2.20/版本

  /依赖关系

  /依赖关系

  配置

  !-是否跳过测试-

  skipTests false /skipTests

  !-排除测试类-

  排除

  排除* */基本*/排除

  /排除

  /配置

  /插件

  /插件

  /构建二。服务层测试示例创建服务层测试基类,新建BaseServiceTest.java

  //配置春天中的测试环境

  @ run with(spring JUnit 4 class runner。class)//指定春天的配置文件路径

  @ context配置(locations={ class path *:/spring/application context。XML })//测试类开启事务,需要指定事务管理器,默认测试完成后,数据库操作自动回滚

  @ Transactional(transaction manager= transaction manager )//指定数据库操作不回滚,可选

  @Rollback(值=假)公共类BaseServiceTest {

  }测试户服务类,新建测试类UserServiceTest.java

  公共类用户服务测试扩展了base servicetest { private static final Logger Logger=Logger factory。获取记录器(UserServiceTest。类);

  @资源私有用户服务UserService

  @Test public void testGet(){

  UserDO UserDO=用户服务。get(1);

  断言。assert not null(userDO);

  伐木工。信息(用户。get username());//增加验证断言

  断言。assert equals( test get faield , Google ,userdo。getusername())。

  }

  }三。控制器层测试示示例创建控制器层测试基类,新建BaseControllerTest.java

  //配置春天中的测试环境

  @ run with(spring JUnit 4 class runner。class)//指定测试环境使用的应用程序上下文是文对象类型的//值指定网应用的根

  @ web app配置(value= src/main/web app )//指定春天容器层次和配置文件路径

  @ContextHierarchy({

  @ context配置(name= parent ,locations={ class path *:/spring/application context。XML }),

  @ context配置(name= child ,locations={ class path *:/spring/application context _ MVC。XML })

  }) //测试类开启事务,需要指定事务管理器,默认测试完成后,数据库操作自动回滚

  @ Transactional(transaction manager= transaction manager )//指定数据库操作不回滚,可选

  @Rollback(值=假)公共类BaseControllerTest {

  }测试索引控制器类,新建测试类IndexControllerTest.java

  公共类指数控制测试扩展了private static final Logger Logger=Logger factory。获取记录器(userservicetest。类);//注入文对象

  @资源私有WebApplicationContext WebApplicationContext;私有MockMvc mockMvc//初始化mockMvc,在每个测试方法前执行

  @ public void setup(){ this之前。模拟MVC=mockmvcbuilders。webappcontextsetup(this。webapplicationcontext).build();

  }

  @Test public void testIndex()抛出异常{ /** * mockMvc.perform()执行一个请求

  * get(/server/get )构造一个请求

  * andExpect()添加验证规则

  * andDo()添加一个结果处理器

  * andReturn()执行完成后返回结果*/MVC result result=模拟MVC。执行(get(/server/get )。param(id , 1 ))。和expect(mockmvcresultmatchers。状态().isOk())。和expect(mockmvcresultmatchers。JSON路径( .用户名)。价值(谷歌))。andDo(print())。安德烈转();

  LOGGER.info(result.getResponse().getContentAsString());//增加验证断言

  断言。断言不为空(结果。getresponse().getContentAsString());

  }

  }四。执行单元测试工程测试目录结构如下,运行传送非试验命令,自动执行梅文-苏尔火-插件插件

  执行结果

  五。异常情况执行测试用例时可能抛beancreationnotallowed异常异常

  [11 20:47:18,133 WARN][Thread-3](abstractapplicationcontext . Java:994)-处理关闭事件的应用程序监听器引发异常

  org。spring框架。豆子。工厂。beancreationnotallowed异常:创建名为"会话工厂"的豆时出错:当此工厂的单例处于销毁状态时,不允许创建单例豆子(不要在破坏方法实现中从豆制品厂请求豆子!)

  位于org。spring框架。豆子。工厂。支持。defaultsingletonbean注册表。获取singleton(defaultsingletonbean注册表。Java:216)

  位于org。spring框架。豆子。工厂。支持。抽象豆厂。doget bean(抽象bean factory。Java:302)

  位于org。spring框架。豆子。工厂。支持。抽象豆厂。get bean(抽象bean factory。Java:202)

  位于org。spring框架。语境。事件。abstractapplicationeventmulticaster。retrieveapplicationlisteners(abstractapplicationeventmulticaster。Java:235)

  位于org。spring框架。语境。事件。abstractapplicationeventmulticaster。getapplicationlisteners(abstractapplicationeventmulticaster。Java:192)

  位于org。spring框架。语境。事件。simpleapplicationeventmulticast。多播事件(simpleapplicationeventmulticaster。Java:128)通过注入默认生命周期处理器解决,编辑资源/spring/applicationContext.xml

  bean id=生命周期处理器

  属性名称= timeoutPerShutdownPhase 值=10000/

  /bean

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: