发文章
发文工具
撰写
网文摘手
文档
视频
思维导图
随笔
相册
原创同步助手
其他工具
图片转文字
文件清理
AI助手
留言交流
目录(?)[+]
在二十三天中我们介绍了使用maven来下载工程的依赖库文件,用ant来进行war包的建立。今天我们在这个基础上将使用junit+dbunit来进行带有单元测试报告的框架的架构。
目标:
我们先来书写一个单元测试类吧
运行方法为:
在eclipse打开该类的情况下右键->run as Junit Test
然后选junit4来运行,运行后直接出错抛出:
这样一个错误,为什么?
其原因在于我们的工程是在eclipse里使用的m2 eclipse这个插件生成的,因此在做单元测试时由于我们的unit test的类是放在test/main/java这个目录下,而这个目录是我们手工建的,因此eclipse不知道这个目录的对应的编译输出的class的目录了.
没关系,按照下面的方法:
右键->选择run as->run configuration,打开如下的设置
选择classpath这个选项栏
我们有了junit为什么还要引入一个dbunit呢?这不是多此一举吗?
试想一下下列场景:
我们开发时连的是开发用的数据库,一张表里有一堆的数据,有些数据不是自己的插的是其它的开发人员插的,那么我想要测试一个dao或者是service方法,获得一个List,然后判断这个List里的值是否为我想要的时候,有可能会碰到下属这样的情况:
运行我的service或者dao方法得到一个list,该list含有6个值,但正好在运行时另一个开发人员因为测试需要往数据库里又插了一些值,导致我的测试方法失败,对不对,这种情况是有可能的。
怎么办呢?比较好的做法是我们需要准备一份自己的业务数据即prepare data,因为是我们自己准备的数据数据,因此它在经过这个方法运行后得到的值,这个得到的值是要经过一系列的业务逻辑的是吧?因此这个得到的值即:expected data是可以被精确预料的。
因此,我们拿着这个expected data与运行了我们的业务方法后得到的结果进行比对,如果比对结果一致,则一定是测试成功,否则失败,对吧?
这就是我们常说的,测试用数据需要是一份干净的数据。
那么为了保持我们的数据干净,我们在测试前清空我们的业务表,插入数据,运行测试地,比对结果,删除数据(也可以不删除,因为每次运行时都会清空相关的业务表),这也就是为什么我们事先要专门搞一个数据库或者是数据库实例,在运行单元测试时我们的数据库连接需要指向到这个单元测试专用的数据库的原因了,见下面的测试流程表:
有了DbUnit,它就可以帮助我们封装:
来自: quasiceo > 《计算机》
0条评论
发表
请遵守用户 评论公约
spring和testng的整合
spring和testng的整合。实现了spring和testNG的无缝整合,我们可以像写普通类那样测试被spring IoC容器所管理的类(否则我们必须在开始...
Eclipse快速上手指南之使用JUnit
单元测试更是必不可少,JUnit是一个非常强大的单元测试包,可以对一个/多个类的单个/多个方法测试,还可以将不同的TestCase组合成TestSuit,使测试任务自动化。如果有多个testXxx方法,JUnit会创建多个...
Activiti初学者教程
注:bpmn20.xml文件中用到了两个用户组(sales、management),是因为我们启动Tomcat运行activiti-explorer应用初始化时自动就会往数据库里添加一些数据,其中用户组的表中就会添加几条记录,其中就包...
【转】Anroid上的单元测试
<manifest xmlns:android="http://schemas.android.com/apk/res/android"package com.android.testapp;<instrumentation android:targetPackage="com.android.testapp" andr...
Junit4学习--初级
Junit4学习--初级。首先新建一个项目叫JUnit_Test,我们编写一个Calculator类,这是一个能够简单实现加减乘除、平方、开方的计算器类,...
在编码之前进行测试(转与Rational Edge)
TFP(也被称为测试驱动设计或测试驱动开发)实际上是用于实现 XP 所描述的单元测试实践的流程,该流程简单地描述为: 在您写代码之前,...
在Eclipse中使用JUnit4进行单元测试(图文教程一)
在Eclipse中使用JUnit4进行单元测试(图文教程一)在Eclipse中使用JUnit4进行单元测试。单元测试,JUnit4。用这个JUnit4工具去辅助我们...
单元测试工具
包名:com.bjsxt.junit4.test。在junit4之后,加入了assertThat方法。满足左右条件 assertThat( n, anyOf( greaterThan(16), lessThan(8...
spring框架学习(三)junit单元测试
spring框架学习(三)junit单元测试单元测试不是头一次听说了,但只是听说从来没有用过。测试方法必须是public,不应该有返回值,方法名必须以test开头,无参数。测试方法是有执行先后顺序,按照方法的...
微信扫码,在手机上查看选中内容