为了后期测试基于spring的单元测试,我们直接新建spring工程。 新建之后,我们先讲一般在java项目中怎么去做单元测试。 我们先定义一个实体User 在service包中新建一个接口,在接口中定义一个方法,方法的返回值就是返回一个用户对象
这里面就是一个简单的业务逻辑,如果id为1则返回一个User对象,否则返回一个空值。在真实的项目中,这边肯定不是这么简单的业务,它对应着的肯定是调用持久层相关的方法,进行业务逻辑的实现。我们这边只是为了讲解单元测试,所以例子相对简单。 service实现已经写好,那我们下步做的事情就是对它进行单元测试。 首先,新建测试类 我们这边新建跟src一样类型的源文件,名字取为test。为什么这么做?也就是这样做的好处是什么?1.层次清晰,项目代码跟测试代码分开,条目很清晰。2.方便管理。 新建好test源包之后,我们再来新建测试类。怎么新建呢?鼠标右击你要测试的类,点击new按钮,再点击右侧的other,在搜索框中输入junit。选择Junit Test Case,点击next,出现如下界面 点击Browse按钮选择,我们新建的test源目录,勾选junit4 点击next,它会自动扫描你测试类中所有的方法。 选中你想测试的方法,点击finish。 由此我们的单元测试新建就基本完成了。 注意:我们这边引用的是junit4,那有些小伙伴加的junit3。那他们的区别是什么呢?junit3需要继承TestCase这个类,而我们junit4不需要。 ![]() import static org.junit.Assert.*; 断言(不详解,可百度) 基本注解 演示如下: 右击运行选择Junit Test 显示结果: 那下面我们来结合案例来测试下我们的简单Servcie 双击我们要测试的方法名,右击运行Junit Test,首先测试面板不报错。绿色代表程序无错。红色代表程序出错,根据出错信息,查找错误所在地,然后进行修改。 左边的Runs:1/1 表示你运行了几个Test测试方法。 Errors:0 表示有多少个错误。Failures:0 表示使用断言的时候,为期望我达到的值的方法有几个。 控制台打印结果 至此我们普通的单元测试基本用法已经讲完。 那基于spring的单元测试怎么弄呢?(这边讲解是针对有spring基础的人群) 首先加载spring的jar包 spring-test-4.0.4.RELEASE(注意版本) commons-logging-1.2.jar 在applicationContext.xml中,扫描service实现包 <context:component-scan base-package="service.impl"></context:component-scan> 在UserServiceImpl实现类上使用springmvc 注解@Service("userService") 编写spring单元测试,点击运行。 @RunWith(SpringJUnit4ClassRunner.class) 上面已做介绍。 @ContextConfiguration(locations={"classpath:applicationContext.xml"})加载配置文件,locations参数是一个数组,可以加载多个,配置文件。 @Resource 自动注入Ioc容器的对应的bean。 @Test 我们的测试方法。 junit的套件测试: 当我们新建了大量的测试类,我们不可能当程序出现问的时候,再一个一个的打开类然后点击一个一个的方法吧。那这边就可以用到junit的套件测试。 在我们的测试包中,点击右击新建Junit Test Suit,选择我们所有的测试类,点击finish 点击运行即可,就达到我们一次测试所有测试类的目的了。 当然,junit 还有很多强大的功能,比如多参数测试等等。。。希望各位小伙伴能够愉快的玩耍,此次讲解只是最基础的用法。大神绕过。。。 但是,我们junit也不是万能的,使用junit进行单元测试,只是证明了你的程序无错,并没有证明你的程序就是对的。 |
|