zoukankan      html  css  js  c++  java
  • 五、Spring ——单元测试

    1、JUnit4

    JUnit测试用例的完整生命周期要经历一下阶段:类级初始化资源处理,方法级初始化资源处理、执行测试用例中的方法、方法级销毁资源处理、类级销毁资源处理。

    • 测试方法 @Test
    • 初始化 @BeforeClass、@AfterClass和@Before、@After
    • 异常测试 @Test(expected=NullPointerException.class)
    • 超时测试 @Test(timeout=10)
    • assertThat 断言

    2、模拟利器Mockito

    • 创建Mock对象

      //对接口进行模拟
      UserService mockUserService = mock(UserService.class);
      //对类进行模拟
      UserServiceImpl mockUserServiceImpl = mock(UserServiceImpl.class);
      //基于注解的模拟@Mock
      User mockUser;
      
      @Before
      public void initMocks(){
      //初始化当前测试类所有@Mock注解模拟对象
         MockitoAnnotations.initMocks(this);
      }
    • 设定Mock对象的期望行为及返回值

        //模拟方法设定返回值when(mockUserService.findUserByUserName("tom").thenReturn(new User("tom", "1234"));
        doReturn(true).when(mockServiceImpl).hasMatchUser("tom","1234");

    3、测试整合之王 Unitils

    Unitils构建在DBUnit与EasyMock项目之上并与JUnit和TestNG相结合,支持数据库测试,支持利用Mock进行测试并提供Spring和Hibernate相集成。Unitils设计成以一种高度可配置和松耦合的方式来添加这些服务到单元测试中。

    4、 单元测试实际运用

    • 对DAO层的测试,结合Untils、DbUnit框架,编写一个支持Excel格式的数据集工厂类,实现使用Excel准备测试所需要的数据及验证数据,从而大大减少测试DAO层工作量。

    • 对Service层的测试,采用Junit+Unitils+Mockito组合,运用Mockito强大的模块能力,完成对service层独立性测试,也可以用JUnit+Unitils+Dbunit组合,运用Dbunit强大的数据库维护能力,完成Service层+DAO层集成测试。

    • 对Web层的测试,既可以采用JUnit+Unitils+Spring Mock组合,运用Spring Mock模拟依赖于容器的接口实例,如HttpServletRequest、ServletContext等,完成Web层中控器独立性测试;也可以采用JUnit+Unitils+Spring RestTemplate,完成Web层集成测试;还可以采用JUnit+Selenium组合,来模拟真实用户的操作及跨浏览器兼容等测试。





  • 相关阅读:
    POJ 2253 Frogger(最短路 Floyd)
    POJ 1062 昂贵的聘礼 (最短路 Dijkstra)
    POJ 3259 Wormholes(最短路Bellman_Ford)
    POJ 3414 Pots(容量BFS)
    POJ 3087 Shuffle'm Up(模拟题)
    POJ 3216 Prime Path(数字BFS)
    refresh的停车场
    基于邻接表的广度优先搜索遍历
    判断给定图是否存在合法的拓扑排序
    威威猫系列故事——篮球梦
  • 原文地址:https://www.cnblogs.com/jeffen/p/6143903.html
Copyright © 2011-2022 走看看