单元测试
测试是软件开发过程中极其重要的一环,详尽周密的测试能够减少软件BUG,提高软件品质。
单元测试是指针对软件功能单元所作的测试,这里的功能单元可以是一个类的属性或者方法,测试的目的是看这些基本单元是否工作正常。
单元测试的内容很基础,因此可以看作是测试工作的第一环,该项工作一般由开发人员自行完成。如果条件允许,单元测试代码的开发应与程序代码的开发同步进行。
使用JUnit的过程,主要是测试Java类里的方法。而单元测试在JUnit里面就是测试某个类其中的一个方法。
JUnit功能
1、可以再Eclipse工具中使用,和被测试代码分开存放,便于区分和管理。当测试结束,可以方便的删除测试代码,不会影响被测代码结构。
2、利用JUnit你可以将设计好的测试用例转化为测试代码。针对被测代码的一个方法,你可以写一个测试方法,也可以写多个测试方法。
3、当你测试一个方法时候,需要做一些前置操作时候,可以在准备方法里完成。
4、当在测试结束时需要收尾操作时候,可以在结束方法里完成。
5、JUnit测试是有生命周期的,JUnit运行器将按顺序依次执行准备方法、测试方法和结束方法
6、同时还支持时间性能测试、异常测试、多个类的打包测试等功能,基本可以满足单元测试的所有需求。
Junit的下载和安装
1、点击Download and install 即可
2、点击下载划红线部分即可
在后面使用junit的时候我们会将这两个jar包加入到Java工程文件中,当加入成功奇偶,我们在项目里面就可以使用junit测试代码啦。
测试方法
从JUnit历史上有2种惯用的单元测试方法。JUnit3采用TestCase的方式进行单元测试,而Junit4则引入Java5的注解(annnotation)特性使测试变得更加简单。
Eclipse对这两种测试方法都支持,我们将分别对这两种方式进行介绍。
1、TestCase使用
import junit . framework.TestCase;
public class DaterTest extends TestCASE{
@override
public void setUp() {
//在测试代码之前执行
}
public void testIsLeapYear() {
//测试代码
}
@override
public void tearDown () {
//在测试代码之后执行
}
}
实现步骤:首先创建建一个测试类并继承TestCase类,然后复写setUp()和tearDown()方法,最后编写测试方法。
setUp():该方法在每个测试方法执行之前都要执行一次,只能有一个。
tearDown():该方法在每个测试方法执行之后要执行一次,只能有一个。
他们必须是public void 类型,不能有参数,方法名不能改变。
测试方法testXxx():
必须是public void 类型,不能有参数,方法名必须以test开头。
2、Annotation使用
import org. junit . After;
import org. junit . Before;
import org. junit .Test;
public class DaterTest {
@Before // 在测试代码之前执行
public void start () {
}
@Test
public void testIsLeapYear() {
//测试代码
}
@After // 在测试代码之后执行
public void finish () {
}
}
实现步骤:首先创建一个测试类,然后写@Before和@After的方法,最后编写测试方法。
@Before:该方法在每个测试方法执行之前都要执行一次,只能有一个。
@After:该方法在每个测试执行之后要执行一次,只能有一个。
他们必须是public void 类型,不能有参数,方法名不强制要求。
测试方法@Test:
必须是public void 类型,不能有参数,方法名不强制要求。
3、断言
JUnit为我们提供了一些铺筑函数,他们用来帮助我们确定被测试的方法是否按照预期的效果正常工作,通常,把这些铺筑函数称为断言。
例如:public oid test () {
result = fun () ;
assertEquals (expected ,result)
}
result为被测方法fun()返回的实际结果,
expect为期望的结果
assertEquals作为断言来判断两者是否相同
JNuit的使用
目前都理论,本人都是在学习当中