Spring单元测试
来源:互联网 发布:安卓手机神器 知乎 编辑:程序博客网 时间:2024/05/17 01:41
1、单元测试简介
软件工程将软件测试分为:
单元测试
集成测试
功能测试
系统测试
开发人员职责:单元测试,集成测试(白盒测试)
测试人员职责:功能测试,系统测试(黑盒测试)
单元测试
单元测试是开发人员编写的一小段代码,用于检验目标代码的一个很小的、很明确的功能是否正确。通常而言,一个单元测试用来判断某个特定条件或特定场景下的某个特定方法的行为。
集成测试
集成测试则是在功能模块开发完成后,为验证功能模块之间匹配调用的正确性而进行的测试。
测试的价值
确保软件质量
确保软件代码的清晰性(可测试)
可以优化目标代码的设计
代码重构的保障
回归测试和持续性集成的基础
单元测试框架-JUnit
JUnit框架是Java开发中使用最多的测试框架之一
JUnit框架相关概念
测试用例(Test Case):一个测试用例可以添加多个测试方法,一个测试方法可以针对一个目标类的方法进行测试。测试运行器为每个测试方法生成一个测试用例实例并分别运行。
断言(Assertions):断言是测试框架里面的若干个方法,用来判断某个语句的结果是否为真或判断是否与预期相符。
Junit断言核心方法
assertArrayEquals(expecteds,actuals):查看两个数组是否相等。
assertEquals(expected,actual):查看两个对象是否正确。类似于字符串比较使用的equals()方法。
assertNotEquals(first,second):查看两个对象是否不相等。
assertNotNull(object):查看对象是否为空。
assertSame(expected,actual):查看两个对象的引用是否相等。类似于使用“!=”比较两个对象。
assertTrue(condition):查看运行结果是否为true。
assertFalse(condition):查看运行结果是否为false。
assertThat(actual,matcher):查看实际值是否满足指定的条件。
fail():让测试失败。
2、具体事例
package com.liutao.service.impl;import com.liutao.dao.UserMapper;import com.liutao.domain.User;import com.liutao.service.UserService;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Service;/** * Created by liutao on 2015/12/29. */@Service("userService")public class UserServiceImpl implements UserService { @Autowired private UserMapper userMapper; @Autowired private GoodsServiceImpl goodsService; public User getUsersByName(String username) { System.out.println(userMapper); System.out.println("user:"+userMapper.getUsersByName(username)); return userMapper.getUsersByName(username); } public String getUserGoodsName(String goodsId){ return goodsService.getGoodsName(goodsId); }}
package TestDao;import com.liutao.service.impl.UserServiceImpl;import junit.framework.TestCase;import org.junit.Test;import org.junit.runner.RunWith;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.test.annotation.Rollback;import org.springframework.test.context.ContextConfiguration;import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;/** * @author: liutao Date: 2015/12/29. */@RunWith(SpringJUnit4ClassRunner.class)@ContextConfiguration("classpath:conf/applicationContext.xml")public class TestUser extends TestCase{ @Autowired private UserServiceImpl userService; @Rollback(true) @Test public void findUser() throws Exception { System.out.println(userService.getUsersByName("liutao")); assertEquals("liubei",userService.getUsersByName("liutao").getUsername()); }}
- Spring单元测试
- Spring单元测试
- spring单元测试
- spring单元测试
- spring单元测试
- Spring单元测试
- spring 单元测试
- Spring单元测试
- spring单元测试
- spring 单元测试
- Spring单元测试
- spring 单元测试
- Spring单元测试
- spring 单元测试
- spring 单元测试
- spring单元测试
- Spring 单元测试
- Spring单元测试
- 单例模式(Singleton)及其C++实现
- 第一篇博客
- GCD的8种搭配方式
- 趣闻
- 同一进程下的线程能共享的内容
- Spring单元测试
- hdu 2068
- POJ 3190 贪心+优先队列
- SSM(Spring+SpringMVC+MyBatis)三大框架整合及遇到的各种问题
- bitmap 转 wpf 的 imageSource
- 2.21
- JAVA之常用类2!!!
- JAVA面试中问及HIBERNATE与 MYBATIS的对比,在这里做一下总结
- 安装redis时遇到zmalloc.h:50:31: 致命错误:jemalloc/jemalloc.h:没有那个文件或目录