您的位置:首页 > 编程语言 > Java开发

在MyEclipse 2014 中使用JUnit-(一)

2016-01-14 10:04 381 查看
一、简介

JUnit是一个开源的java单元测试框架。
1) 提供的API可以让你写出测试结果明确的可重用单元测试用例
2) 提供了三种方式来显示你的测试结果,而且还可以扩展
3) 提供了单元测试用例成批运行的功能
4) 超轻量级而且使用简单,没有商业性的欺骗和无用的向导
5) 整个框架设计良好,易扩展

二、入门

下面是利用JUnit进行单元测试的步骤:

1.创建一个Java项目,命名为JUnitTest。

2.右击该java项目,选择Properties,点击Java Build Path->Add Library->JUnit.->JUnit 4.







这样Junit 就被加入到项目中,如下:



3.创建一个Calculator 类,代码如下:

package com.demo;

public class Calculator {
public int add(int a,int b){
return a+b;
}

public int minus(int a,int b){
return a-b;
}

public int divide(int a,int b){
return a/b;
}

public int mul(int a,int b){
return a*b;
}
}


4.创建一个JUnit Test Case ,设置如下:



5.点击Next,



6.系统会自动生成一个TestCalculator 类,只需要稍微修改其中一些代码即可。测试代码如下:

package com.demo;

import static org.junit.Assert.*;

import org.junit.After;
import org.junit.Before;
import org.junit.Test;

import com.demo.Calculator;

public class TestCalculator {
Calculator calculator;
@Before
public void setUp() throws Exception {
calculator=new Calculator();
}

@After
public void tearDown() throws Exception {
}

@Test
public void testAdd() {
int rel=calculator.add(12, 22);
assertEquals("加法有问题",rel,34);
}

@Test
public void testMinus() {
int rel=calculator.minus(24, 12);
assertEquals("减法有问题",rel,12);
}

@Test
public void testDivide() {
int rel=calculator.divide(24, 12);
assertEquals("除法有问题",rel,2);
}

@Test
public void testMul() {
int rel=calculator.mul(2, 12);
assertEquals("乘法有问题",rel,24);
}

}
7.在TestCalculator右击,选中Run As->JUnit Test



8.运行结果如下:



三、测试代码的放置

三种放置方式:

1、同一目录——针对小型项目

假设有一个项目类,名字为

com.test.business.Account

相应的测试位于

com.test.business.TestAccount

即物理上存在于同一目录

优点是TestAccount能够访问Account的protected成员变量和函数

缺点是测试代码到处都是,且堆积在产品代码的目录中 2、子目录

这个方案是在产品代码的目录之下创建一个test子目录

同上,假设有一个项目类,名字为

com.test.business.Account

相应的测试位于

com.test.business.test.TestAccount

优点是能把测试代码放远一点,但又不置于太远

缺点是测试代码在不同的包中,所以测试类无法访问产品代码中的protected成员,解决的办法是写一个产品代码的子类来暴露那些成员。然后在测试代码中使用子类。

举一个例子,假设要测试的类是这样的:

package com.test.business;

public class Pool{

protected Date lastCleaned;

....

}

为了测试中获得non-public数据,我们需要写一个子类来暴露它

package com.test.business.test;

import com.test.business.Pool;

public class PoolForTesting extends Pool{

public Date getLastCleaned(){

return lastCleaned;

}

....

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: