JUnit4---eclipse中使用JUnit4进行单元测试、快速上手指南

①在你的工程里导入JUnit4的包

②右击创建JUnit测试类,在测试类中编写测试代码即可。

JUnit 目前需要掌握的有一下几点:

Fixture系列:BeforeClass,AfterClass,Before,After

普通测试:Ignore(忽视),Text(测试),Test(timeout = 1000)(限时测试),Test(expected = ArithmeticException.class)(异常测试)

特殊测试:批量参数测试,打包测试

③Fixture系列与普通测试例代码

package com.mikuscallion.main;

import static org.junit.Assert.*;

import org.junit.After;
import org.junit.AfterClass;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Ignore;
import org.junit.Test;
public class CalculatorTest {
	//测试对象
	Calculator calculator =new Calculator();
	//Fixture
	@BeforeClass
	public static void beforeClass(){
		System.out.println("在测试类初始化时,调用一次");
	}
	@AfterClass
	public static void afterClass(){
		System.out.println("在测试类运行结束时,调用一次");
	}
	@Before
	public void before(){
		System.out.println("执行任何测试代码前调用");
		calculator.clear();
	}
	@After
	public void after(){
		System.out.println("执行任何测试代码后调用");
	}
	//Test---------------------------------------------------------------------------------
	@Ignore
	//忽视测试
	public void testMultiply() {
		calculator.multiply(1);
		calculator.multiply(5);
		//断言结果
		assertEquals(5, calculator.getResult());
	}
	@Test(timeout = 1000)
	//限时测试 
	public void limitTimeTest(){
		calculator.squareRoot(5);
	}
	@Test(expected = ArithmeticException.class)
	//异常测试
	public void exceptTest(){
		calculator.divide(0);
	}
	@Test
	public void testAdd() {
		calculator.add(1);
		calculator.add(2);
		assertEquals(3, calculator.getResult());
	}
	@Test
	public void testSubstract() {
		calculator.add(10);
		calculator.substract(2);
		assertEquals(8, calculator.getResult());
	}
	@Test
	public void testDivide() {
		calculator.add(8);
		calculator.divide(2);
		assertEquals(4, calculator.getResult());
	}
	
}

④参数测试代码

package com.mikuscallion.main;

import static org.junit.Assert.*;

import java.util.Arrays;
import java.util.Collection;

import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;
import org.junit.runners.Parameterized.Parameters;

@RunWith(Parameterized.class)
public class SquareTest {
	public Calculator calculator =new Calculator();
    public int param;
    public int result;
    
    @Parameters
    public static Collection data(){
    	//注意这种写法
        return Arrays.asList(new Object[][]{
                {2, 4},
                {0, 0},
                {-3, 9},
        });
    }
    public SquareTest(int param, int result){
        this.param = param;
        this.result = result;
    }
	@Test
	public void testSquare() {
		calculator.square(param);
		assertEquals(result, calculator.getResult());
	}
}

⑤批量测试代码

package com.mikuscallion.main;


import org.junit.runner.RunWith;
import org.junit.runners.Suite;
import org.junit.runners.Suite.SuiteClasses;
@SuiteClasses({
	SquareTest.class,
	CalculatorTest.class,
})
@RunWith(Suite.class)
public class SuiteTest {
	
}


⑥被测试类代码

package com.mikuscallion.main;
public class Calculator {
		
		private static int result; // 静态变量,用于存储运行结果
		
		public void add(int n){
			result = result + n;
		}
		public void substract(int n){
			result = result - n; //Bug: 正确的应该是 result =result-n
		}
		public void multiply(int n){
		} // 此方法尚未写好
		public void divide(int n){
		result = result / n;
		}
		
		//
		public void square(int n){
			result = n * n;
		}
		public void squareRoot(int n){
			for (; ;) ; //Bug : 死循环
		}
		public void clear(){ // 将结果清零
			result = 0;
		}
		public int getResult(){
			return result;
		}
} 


最后:

看得不是特别懂的话,参考:

http://developer.51cto.com/art/201103/252490.htm





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值