您的位置:軟件測試 > 開源軟件測試 > 開源單元測試工具 > junit
Junit源碼解析總結(jié)
作者:網(wǎng)絡(luò)轉(zhuǎn)載 發(fā)布時間:[ 2016/3/10 13:58:30 ] 推薦標(biāo)簽:軟件測試 單元測試

  前面的博客我們也已經(jīng)整理到了,我們使用junit38,在寫測試類的時候我們的測試類必須繼承TestCase。這個所有測試類的父類在junit.framework包下面。
  前面我們的整理都是說直接在IDE中直接運(yùn)行測試類,右擊然后run as junit。當(dāng)然我們還可以自己寫main方法來運(yùn)行測試,其實(shí)都一樣。
  OK,現(xiàn)在我們來寫一個例子,直接運(yùn)行測試類的main方法來跑測試。代碼如下:
package org.linkinpark.commons.textui;
import org.linkinpark.commons.framework.TestCase;
import org.linkinpark.junit.Assert;
/**
* @創(chuàng)建作者: LinkinPark
* @創(chuàng)建時間: 2016年2月4日
* @功能描述: 寫一個測試類,用main方法來驅(qū)動測試。
*/
public class LinkinTest2 extends TestCase
{
public void test1()
{
Assert.assertEquals("1", "1");
}
/**
* @創(chuàng)建時間: 2016年2月4日
* @相關(guān)參數(shù): @param args
* @功能描述: 調(diào)用TestRunner來run測試。
*/
public static void main(String[] args)
{
TestRunner.run(LinkinTest2.class);
}
}
  前面的3篇博客,我已經(jīng)認(rèn)真的整理過了junit測試的3個步驟,這里做一個總結(jié)。
  我們來自己寫的測試類上的一個測試方法打一個斷點(diǎn),然后看下eclipse中junit方法調(diào)用的情況。

  OK,上面的2張圖很直接了說明了測試開始到測試方法真正被執(zhí)行的所有的過程,我在這里也不做贅述了。之后的結(jié)果收集,無疑是在每個測試類中傳遞一個TestResult類,通過printerWriter來打印日志而已,這里也不在贅述了。
  在前面的演示junit源碼過程中,我自己也修改了好多的控制臺輸出。后這里寫2個測試?yán),來一起看下控制臺的輸出,整體回顧下junit的整個測試過程好了。
  2個測試類代碼如下:
package org.linkinpark.commons.textui;
import org.linkinpark.commons.framework.TestCase;
import org.linkinpark.junit.Assert;
public class LinkinTest1 extends TestCase
{
public LinkinTest1(String methodName)
{
super(methodName);
}
public void setUp()
{
System.out.println("這里是自己定義的setUp()");
}
public void tearDown()
{
System.out.println("這里是自己定義的tearDown()");
}
public void testLinkin4Normal()
{
System.out.println("======>開始執(zhí)行被測試代碼====");
final String str = "林肯:這里是自己的被測試的正確代碼";
System.out.println(str);
System.out.println("======>結(jié)束執(zhí)行被測試代碼====");
Assert.assertEquals(str, str);
}
public void testLinkin8Error()
{
System.out.println("======>開始執(zhí)行被測試代碼====");
final String str = "林肯:這里是自己的被測試的錯誤代碼";
System.out.println(str);
System.out.println("======>結(jié)束執(zhí)行被測試代碼====");
Assert.assertEquals("這里是我期望的錯誤邏輯輸出", str);
}
}
package org.linkinpark.commons.textui;
import org.linkinpark.commons.framework.TestCase;
import org.linkinpark.junit.Assert;
public class LinkinTest1 extends TestCase
{
public LinkinTest1(String methodName)
{
super(methodName);
}
public void testLinkin()
{
Assert.assertTrue(true);
}
}
package org.linkinpark.commons.textui;
import org.linkinpark.commons.framework.Test;
import org.linkinpark.commons.framework.TestCase;
import org.linkinpark.commons.framework.TestSuite;
public class LinkinTestAll extends TestCase
{
public static Test suite()
{
TestSuite suite = new TestSuite().addTestSuite(LinkinTest.class);
return suite.addTest(new LinkinTest1("testLinkin"));
}
public static void main(String args[])
{
TestRunner.run(suite());
}
}

上一頁12下一頁
軟件測試工具 | 聯(lián)系我們 | 投訴建議 | 誠聘英才 | 申請使用列表 | 網(wǎng)站地圖
滬ICP備07036474 2003-2017 版權(quán)所有 上海澤眾軟件科技有限公司 Shanghai ZeZhong Software Co.,Ltd