转载自:http://blog.csdn.net/xiazdong/article/details/7317376
一、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());
- }
- }