新浪微博 Github

JUnit4 学习总结

一、JUnit介绍

Junit是 Erich Gamma 和 Kent Beck编写的测试框架,是我们在软件工程所说的白盒测试。

使用也很简单,只需要在Eclipse导入JAR包即可;

下载地址:https://github.com/downloads/KentBeck/junit/junit4.10.zip

 

二、JUnit4和JUnit3的比较

 

JUnit3 JUnit4
测试类需要继承TestCase 不需要继承任何类
测试函数约定:public、void、test开头、无参数 需要在测试函数前面加上@Test

每个测试函数之前setUp执行

@Before
每个测试函数之后tearDown执行 @After
没有类加载时执行的函数 @BeforeClass和@AfterClass

 

三、JUnit4详解

 

1.@Test用来标注测试函数

2.@Before用来标注此函数在每次测试函数运行之前运行

3.@After用来标注此函数在每次测试函数运行之后运行

4.@BeforeClass用来标注在测试开始时运行;

5.@AfterClass 用来标注在测试结束时运行;

6.Assert类中有很多断言,比如assertEquals("期望值","实际值");


代码示例:

Person.java

package org.xiazdong;

public class Person {
	private String name;
	private int age;
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public int getAge() {
		return age;
	}
	public void setAge(int age) {
		this.age = age;
	}
	public Person(String name, int age) {
		this.name = name;
		this.age = age;
	}
	
}

PersonTest.java

此测试是用JUnit3测试的;

package org.xiazdong.junit;

import junit.framework.Assert;
import junit.framework.TestCase;

import org.xiazdong.Person;

public class PersonTest extends TestCase {
	
	@Override
	protected void setUp() throws Exception {
		System.out.println("setUp");
	}

	@Override
	protected void tearDown() throws Exception {
		System.out.println("tearDown");
	}

	public void testFun1(){
		Person p = new Person("xiazdong",20);
		Assert.assertEquals("xiazdong", p.getName());
		Assert.assertEquals(20, p.getAge());
	}
	public void testFun2(){
		Person p = new Person("xiazdong",20);
		Assert.assertEquals("xiazdong", p.getName());
		Assert.assertEquals(20, p.getAge());
	}
}

PersonTest2.java

此测试是用JUnit4测试的;

package org.xiazdong.junit;

import junit.framework.Assert;

import org.junit.After;
import org.junit.AfterClass;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;
import org.xiazdong.Person;

public class PersonTest2 {
	
	@Before
	public void before(){
		System.out.println("before");
	}
	@After
	public void after(){
		System.out.println("After");
	}
	@BeforeClass
	public void beforeClass(){
		System.out.println("BeforeClass");
	}
	@AfterClass
	public void afterClass(){
		System.out.println("AfterClass");
	}
	@Test
	public void testFun1(){
		Person p = new Person("xiazdong",20);
		Assert.assertEquals("xiazdong", p.getName());
		Assert.assertEquals(20, p.getAge());
	}
	@Test
	public void testFun2(){
		Person p = new Person("xiazdong",20);
		Assert.assertEquals("xiazdong", p.getName());
		Assert.assertEquals(20, p.getAge());
	}
}




 

posted @ 2012-03-04 11:08  xiazdong  阅读(309)  评论(0编辑  收藏  举报