Junit一般测试和高级测试

日期: 2016-7-7


内容: 总结Junit测试


package com.java.junitDemo;

import static org.junit.Assert.*;

import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Arrays;
import java.util.Collection;
import java.util.Date;
import java.util.List;

import org.junit.After;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized.Parameters;
import org.junit.runners.Suite;
import org.junit.runners.Suite.SuiteClasses;

import bsh.ParseException;

public class CalculatorDemoTest {
	
	//实例化一个CalculatorDemo对象
	private static CalculatorDemo c = new CalculatorDemo();
	
	//实例化一个时间对象
	Date date1 = new Date();
	
	//日期格式
	String format = "yyyy年MM月dd日 HH:mm:ss";
	//实例化一个时间格式化字符串
	SimpleDateFormat sdf2 = new SimpleDateFormat(format);
	
	@Before
	public void setUp() throws Exception {
		System.out.println("开始执行: "+sdf2.format(date1));
	}

	@After
	public void tearDown() throws Exception {
		System.out.println("结束执行: "+sdf2.format(date1));
	}

	@Test
	public void testAdd() {
		c.add(10);
		c.clear();
		int cc = c.getResult();
		System.out.println("执行返回值: "+cc);
	}

	@Test
	public void testSubStract() {
		fail("まだ実装されていません");
	}

	@Test
	public void testMultiply() {
		fail("まだ実装されていません");
	}

	@Test
	public void testDivide() {
		fail("まだ実装されていません");
	}

	@Test
	public void testSquare() {
		fail("まだ実装されていません");
	}

	@Test
	public void testSquareRoot() {
		fail("まだ実装されていません");
	}

	@Test
	public void testClear() {
		fail("まだ実装されていません");
	}

	@Test
	public void testGetResult() {
		fail("まだ実装されていません");
	}
	
	//<***************************************Junit4.X的高级运用*************************************************>
	//使用junit进行超时测试
	@Test(timeout=2000)
	public void testTimeOut1() throws InterruptedException
	{
		//设置线程超时时间
		Thread.sleep(2000);//测试通过
	}
	
	//使用junit进行超时测试
	@Test(timeout=2000)
	public void testTimeOut2() throws InterruptedException
	{
		//设置线程超时时间
		Thread.sleep(3000);//测试异常
	}
	
	//用Junit进行异常测试
	@Test(expected=IOException.class)
	public void testException1() throws InterruptedException
	{
		throw new RuntimeException();//手动跑出运行时异常--->运行不通过
	}
	
	//用Junit进行异常测试
	@Test(expected=RuntimeException.class)
	public void testException2() throws InterruptedException
	{
		throw new RuntimeException();//手动跑出运行时异常--->运行通过
	}
	/**
	 * 总结: 当抛出的异常和指定的异常相同的时候就运行通过
	 */
	
	//使用junit进行参数设置
	private SimpleDateFormat sdf;
	private String date;
	private String dateformat ;
	private String expectedDate;
	
	//构造函数
	public CalculatorDemoTest(String date,String dateformat ,String expectedDate)
	{
		this.date = date;
		this.dateformat  = dateformat ;
		this.expectedDate = expectedDate;
	}
	
	@Parameters
	public static Collection getParamters() {

        String[][] object = {
                { "2011-07-01 00:20:20", "yyyyMMdd", "20110701" },
                { "2011-07-01 00:20:20", "yyyy年MM月dd日", "2011年07月01日" },
                { "2011-07-01 00:20:20", "HH时mm分ss秒", "00时20分20秒" } };
        List<String[]> list = Arrays.asList(object);
        return  list;
    }
	
	@Test
    public void testJunitParameter() throws  java.text.ParseException {
        SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        Date d = df.parse(this.date);
        sdf = new SimpleDateFormat(this.dateformat);
        String result = sdf.format(d);
        Assert.assertEquals(this.expectedDate, result);

    }
	
	//使用junit进行Suite测试,不仅仅TestNg可以有suite哦~~~
	@RunWith(Suite.class)
//	@SuiteClasses({TestDateFormat.class,TestIORead.class})
	public class TestSuite {
	    
	    
	}
	
	//使用junit进行mock测试: mock测试其实采用的Mockito进行
	
	
	//使用@Category进行分类测试
}




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值