kiral的執(zhí)著之道
          一個(gè)有故事的人
          posts - 10,comments - 0,trackbacks - 0

          名詞解釋:

          • Junit:眾所周知的單元測(cè)試。 官方網(wǎng)址:http://junit.sourceforge.net/。Junit從4.0開(kāi)始提供基于注解的配置方式。
          • Dbunit: 一個(gè)針對(duì)數(shù)據(jù)庫(kù)測(cè)試的框架,通過(guò)Excel準(zhǔn)備數(shù)據(jù)并插入數(shù)據(jù)庫(kù)。官方地址:http://www.dbunit.org/
          • TestNG:從字面上可以理解為下一代單元測(cè)試,和Junit的功能有一部分重疊和區(qū)別。TestNG也有Eclipse插件,官方地址http://testng.org/doc/index.html
          • Unitiles: 讓單元測(cè)試變得更加容易和可維護(hù),Unitils構(gòu)建在DBUnit之上并與JUnit和TestNG相結(jié)合。官方地址:http://www.unitils.org
          • Jmock:JMock是一個(gè)JAVA開(kāi)發(fā)包,它支持Mock(模擬)對(duì)象機(jī)制的TDD(測(cè)試驅(qū)動(dòng)開(kāi)發(fā)),官方地址:http://www.jmock.org/


          什么是Jtester?
          jTester是一個(gè)基于java的單元測(cè)試框架。開(kāi)源地址:http://code.google.com/p/java-tester/

          為什么要用Jtester?

          JTester是站在眾多巨人肩膀上的單元測(cè)試框架,集成了Junit4.5,dbunit2.4.3,unitils2.2,JMOCK2.5和TestNg5.1這些優(yōu)秀的開(kāi)源框架,并在這些框架上做了擴(kuò)展,使得單元測(cè)試更加方便和強(qiáng)大。

          Jtester帶給了我們什么?

          1、在unitils的基礎(chǔ),集成了jmock功能
          2、在hamcrest斷言的基礎(chǔ)上,實(shí)現(xiàn)了fluent interface斷言
          3、改造了jmock expectation參數(shù)斷言為fluent interface形式
          4、錄制對(duì)象:提供了將普通的pojo對(duì)象序列化到文件,然后再?gòu)奈募蟹葱蛄谢貋?lái)的功能,用于在對(duì)象復(fù)雜的情況下,直接錄制接口(遠(yuǎn)程接口)調(diào)用返回的對(duì)象,以供下次測(cè)試或調(diào)試使用。
          5、數(shù)據(jù)測(cè)試:使用wiki代替xml來(lái)準(zhǔn)備測(cè)試數(shù)據(jù)。比dbunit更快準(zhǔn)備數(shù)據(jù)。
          6、實(shí)現(xiàn)了更加豐富的斷言。比junit的斷言多。
          7、提供了hibernate annotation環(huán)境下,直接使用內(nèi)存數(shù)據(jù)庫(kù)進(jìn)行db測(cè)試。
          8、提供了hibernate annotation環(huán)境下,Open Test in Session的實(shí)現(xiàn)。
          以上8大特性來(lái)自于官方,我稍加了點(diǎn)說(shuō)明和整理。?

          ?
          七步進(jìn)入Jtester世界。?下面讓我們花一個(gè)泡面的時(shí)間來(lái)學(xué)習(xí)下Jtester吧。

          import mockit.NonStrict;
          
          import org.jtester.testng.JTester;
          import org.jtester.unitils.jmockit.MockedBean;
          import org.testng.annotations.Test;
          import org.unitils.spring.annotation.SpringApplicationContext;
          import org.unitils.spring.annotation.SpringBean;
          
          /**
           * Jtester測(cè)試?yán)樱凑兆⑨岉樞驅(qū)W習(xí)
           * 
           * @author tengfei.fangtf
           */
          @SpringApplicationContext( { "applicationContext.xml" })
          // 1.@SpringApplicationContext:加載Spring 配置文件,所有測(cè)試相關(guān)的bean都在這個(gè)容器中;
          public class BusinessTestCase extends JTester// 2.JTester:要使用JTester
          // 提供的功能,需要繼承此基類;
          {
          
          	@SpringBean("businessService")
          	// 3.@SpringBean:從容器中取出指定id 的bean 并注入到測(cè)試類中
          	private AppInternalService businessService;
          
          	@MockedBean
          	@NonStrict
          	// 4.@Mocked @MockedBean:mock 出一個(gè)對(duì)象,并將該對(duì)象與Spring 容器結(jié)合,實(shí)現(xiàn)Autowired;
          	private OneHessianServiceClient hessianClient;
          
          	@Test(groups = { "FirstTestGroup" })
          	// 5.@Test;TestNG 的注解;指明此方法為一個(gè)TestCase;
          	public void testBusinessNormal() {
          		new Expectations() {// 6.設(shè)置mock 對(duì)象的期望返回值
          			{
          				hessianClient.hessianServiceInvorke(anyString);
          				result = "HH";// 那么執(zhí)行這個(gè)方法,永遠(yuǎn)都返回HH
          			}
          		};
          
          		String returnResult = businessService
          				.bussinessService("Sample Business!");
          		System.out.println("\n ---> " + returnResult);// 輸出HH
          		want.string(returnResult).notNull();// want:JTester 框架提供的強(qiáng)大的斷言;
          	}
          
          }

          ?



          已有 8 人發(fā)表留言,猛擊->>這里<<-參與討論


          JavaEye推薦



          posted on 2011-02-04 00:31 方騰飛 閱讀(1347) 評(píng)論(0)  編輯  收藏

          只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 通榆县| 若羌县| 泉州市| 梓潼县| 稷山县| 沭阳县| 宜川县| 文昌市| 巴林左旗| 若尔盖县| 安塞县| 石屏县| 元阳县| 榆中县| 红河县| 民县| 沂水县| 南陵县| 北安市| 秦安县| 灵山县| 句容市| 吐鲁番市| 江油市| 杨浦区| 织金县| 沧州市| 武宣县| 卢湾区| 修武县| 大新县| 固安县| 姜堰市| 天门市| 喀喇沁旗| 虞城县| 茂名市| 墨玉县| 任丘市| 翁牛特旗| 长宁区|