日期: 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进行分类测试
}