Sky's blog

          我和我追逐的夢(mèng)

          導(dǎo)航

          <2025年7月>
          293012345
          6789101112
          13141516171819
          20212223242526
          272829303112
          3456789

          留言簿(8)

          隨筆分類

          隨筆檔案

          閱讀排行榜

          評(píng)論排行榜

          常用鏈接

          統(tǒng)計(jì)

          其他鏈接

          友情鏈接

          最新評(píng)論

          software test

          和軟件測(cè)試相關(guān)的內(nèi)容,包括單元測(cè)試,集成測(cè)試,壓力測(cè)試
          easymock教程-自定義參數(shù)匹配器
               摘要: 雖然easymock中提供了大量的方法來(lái)進(jìn)行參數(shù)匹配,但是對(duì)于一些特殊場(chǎng)合比如參數(shù)是復(fù)雜對(duì)象而又不能簡(jiǎn)單的通過(guò)equals()方法來(lái)比較,這些現(xiàn)有的參數(shù)匹配器就無(wú)能為力了。easymock為此提供了IArgumentMatcher 接口來(lái)讓我們實(shí)現(xiàn)自定義的參數(shù)匹配器。  閱讀全文

          posted @ 2010-11-30 18:18 sky ao 閱讀(3165) | 評(píng)論 (0)  編輯

          easymock教程-改變同一個(gè)方法調(diào)用的行為
               摘要: 在easymock中,對(duì)于mock對(duì)象的同一個(gè)方法,可以為每一次的調(diào)用定制不同的行為。在record階段easymock會(huì)精確的記錄我們錄入的行為,基于每一次的方法調(diào)用。  閱讀全文

          posted @ 2010-11-30 17:06 sky ao 閱讀(2552) | 評(píng)論 (0)  編輯

          easymock教程-運(yùn)行時(shí)返回值或者異常
               摘要: 前面的教程中,我們看到easymock可以通過(guò)expect方法來(lái)設(shè)定mock方法的返回值或者異常,但是注意這些案例中設(shè)置的返回值都是在調(diào)用被測(cè)試的類的方法前就已經(jīng)確定下來(lái)的,即我們其實(shí)在測(cè)試類的代碼運(yùn)行前(實(shí)際是在EasyMock.replay()方法調(diào)用前)就已經(jīng)"預(yù)知"了返回結(jié)果。

          但是在某些情況下,我們可能無(wú)法預(yù)知返回值,比如我們需要根據(jù)輸入的參數(shù)值來(lái)決定返回什么,而這個(gè)參數(shù)可能無(wú)法在record階段獲得。因此在mock方法中我們無(wú)法在record階段就決定應(yīng)該返回什么。

          對(duì)于這種場(chǎng)景,easymock提供了IAnswer接口和andAnswer()方法來(lái)提供運(yùn)行時(shí)決定返回值或者異常的機(jī)制。  閱讀全文

          posted @ 2010-11-30 16:36 sky ao 閱讀(3626) | 評(píng)論 (0)  編輯

          easymock教程-partial class mocking
               摘要: easymock中提供對(duì)于類的mock功能,我們可以方便的mock這個(gè)類的某些方法,指定預(yù)期的行為以便測(cè)試這個(gè)類的調(diào)用者。這種場(chǎng)景下被mock的類在測(cè)試案例中扮演的是次要測(cè)試對(duì)象或者說(shuō)依賴的角色,主要測(cè)試對(duì)象是這個(gè)mock類的調(diào)用者。但是有時(shí)候我們需要將這個(gè)測(cè)試類作為主要測(cè)試對(duì)象,我們希望這個(gè)類中的部分(通常是大部分)方法保持原有的正常行為,只有個(gè)別方法被我們mock掉以便測(cè)試。  閱讀全文

          posted @ 2010-11-30 14:23 sky ao 閱讀(3125) | 評(píng)論 (0)  編輯

          easymock教程-參數(shù)匹配
               摘要: easymock中提供了非常多的方法來(lái)實(shí)現(xiàn)參數(shù)匹配,基本能滿足一般參數(shù)匹配的要求。  閱讀全文

          posted @ 2010-11-29 18:57 sky ao 閱讀(4943) | 評(píng)論 (2)  編輯

          easymock教程-命名mock對(duì)象
               摘要: 在創(chuàng)建mock對(duì)象的時(shí)候,我們可以命名mock對(duì)象。
          命名mock對(duì)象有什么好處呢?其實(shí)就是一點(diǎn),即在當(dāng)測(cè)試案例因?yàn)槟硞€(gè)mock對(duì)象的狀態(tài)或行為不符合要求而失敗的時(shí)候,在異常信息里面可以輸出這個(gè)mock對(duì)象的名稱。  閱讀全文

          posted @ 2010-11-29 16:34 sky ao 閱讀(2502) | 評(píng)論 (1)  編輯

          easymock教程-放寬調(diào)用次數(shù)
               摘要: 對(duì)于mock對(duì)象上的mock方法的調(diào)用,easymock支持指定次數(shù),默認(rèn)為1.同時(shí)easymock提供了其他的方法,用于指定具體調(diào)用次數(shù)或者放寬調(diào)用次數(shù)檢驗(yàn)。  閱讀全文

          posted @ 2010-11-29 15:55 sky ao 閱讀(1809) | 評(píng)論 (0)  編輯

          easymock教程-mock的限制
               摘要: easymock并不是萬(wàn)能的,在使用easymock時(shí)有一些限制需要注意。  閱讀全文

          posted @ 2010-11-25 11:12 sky ao 閱讀(3318) | 評(píng)論 (0)  編輯

          easymock教程-創(chuàng)建stub對(duì)象
               摘要:
          前面教程中有個(gè)章節(jié)討論到mock和stub的概念差別,一般來(lái)說(shuō)easymock如其名所示,主要是用來(lái)做mock用的,但是easymock中也提供有對(duì)stub的支持, 主要體現(xiàn)在andStubAnswer(),andStubDelegateTo(),andStubReturn(),andStubThrow()和asStub()等方法的使用上。  閱讀全文

          posted @ 2010-11-23 17:51 sky ao 閱讀(2148) | 評(píng)論 (0)  編輯

          easymock教程-strict和nice
               摘要: 在easymock的使用過(guò)程中,當(dāng)創(chuàng)建mock對(duì)象時(shí),我們會(huì)遇到 strict mock和nice mock的概念。上述的測(cè)試案例驗(yàn)證了strict mock和nice mock的基本使用,對(duì)于同一個(gè)mock對(duì)象,strict模式下多個(gè)方法之間的調(diào)用順序在record階段和replay階段下是需要保持一致的。但是故事并不是到此結(jié)束,更有意思的內(nèi)容在后面:如果出現(xiàn)多個(gè)mock對(duì)象,那么這些不同mock對(duì)象的方法之間,他們的調(diào)用順序是否檢測(cè)?普通mock和nice mock模式下自然是不會(huì)檢測(cè)順序,但是strict模式下呢?

            閱讀全文

          posted @ 2010-11-19 11:39 sky ao 閱讀(2634) | 評(píng)論 (0)  編輯

          easymock教程-使用MockControl
               摘要: IMocksControl接口容許創(chuàng)建多個(gè)mock對(duì)象,這些創(chuàng)建的對(duì)象自動(dòng)關(guān)聯(lián)到這個(gè)mocksControl實(shí)例上,以后再調(diào)用replay()/verify()/reset()時(shí)就不需要逐個(gè)列舉出每個(gè)mock對(duì)象。當(dāng)mock對(duì)象比較多,尤其是原有代碼上新增mock 對(duì)象時(shí)非常方便。
            閱讀全文

          posted @ 2010-10-26 17:18 sky ao 閱讀(2626) | 評(píng)論 (0)  編輯

          easymock教程-class mocking
               摘要: 前面的例子中,mock的對(duì)象都是基于interface,雖然說(shuō)我們總是強(qiáng)調(diào)要面對(duì)接口編程,而不要面對(duì)實(shí)現(xiàn),但是實(shí)際開(kāi)發(fā)中不提取interface而直接使用class的場(chǎng)景非常之多。尤其是一些當(dāng)前只有一個(gè)明確實(shí)現(xiàn)而看不到未來(lái)擴(kuò)展的類,是否應(yīng)該提取interface或者說(shuō)是否應(yīng)該現(xiàn)在就提取interface,總是存在爭(zhēng)論。

          這種情況下,我們就會(huì)面臨主要測(cè)試對(duì)象依賴到一個(gè)具體類而不是interface的情況,easymock中通過(guò)class extension 來(lái)提供對(duì)class mocking的支持。  閱讀全文

          posted @ 2010-10-26 16:54 sky ao 閱讀(2031) | 評(píng)論 (0)  編輯

          easymock教程-easymock的典型使用
               摘要: 關(guān)于easymock的典型使用方式,在easymock的官網(wǎng)文檔中,有非常詳盡的講解,文檔地址為 http://easymock.org/EasyMock3_0_Documentation.html,文檔的開(kāi)頭一部分內(nèi)容都是easymock中最基本的使用介紹,雖然是英文,但是非常容易看懂,適用新學(xué)者入門。

          這里只羅列一些簡(jiǎn)單的常用功能。
            閱讀全文

          posted @ 2010-10-15 17:14 sky ao 閱讀(13881) | 評(píng)論 (0)  編輯

          easymock教程-record-replay-verify模型
               摘要: record-replay-verify 模型容許記錄mock對(duì)象上的操作然后重演并驗(yàn)證這些操作。這是目前mock框架領(lǐng)域最常見(jiàn)的模型,幾乎所有的mock框架都是用這個(gè)模型,有些是現(xiàn)實(shí)使用如easymock,有些是隱式使用如jmockit。

          record-replay-verify 模型非常好的滿足了大多數(shù)測(cè)試場(chǎng)景的需要:先指定測(cè)試的期望,然后執(zhí)行測(cè)試,再驗(yàn)證期望是否被滿足。這個(gè)模型簡(jiǎn)單直接,易于實(shí)現(xiàn),也容易被開(kāi)發(fā)人員理解和接受,因此被各個(gè)mock框架廣泛使用。  閱讀全文

          posted @ 2010-10-15 14:50 sky ao 閱讀(3850) | 評(píng)論 (0)  編輯

          easymock教程-單元測(cè)試中的主要測(cè)試對(duì)象和依賴
               摘要: 在單元測(cè)試中,通常我們都會(huì)有一個(gè)明確的測(cè)試對(duì)象,我們測(cè)試的主要目的就是為了驗(yàn)證這個(gè)類的工作如我們預(yù)期。  閱讀全文

          posted @ 2010-10-14 14:01 sky ao 閱讀(1742) | 評(píng)論 (0)  編輯

          easymock教程-目錄
               摘要: easymock是目前java mock 工具中比較流行的工具,這個(gè)教程將系統(tǒng)的介紹easymock的使用。

          主要內(nèi)容來(lái)自easymock的官網(wǎng)教程,針對(duì)日常使用進(jìn)行了一些篩選和補(bǔ)充,另外增加一些個(gè)人的理解和認(rèn)識(shí)。

          另外考慮到網(wǎng)絡(luò)上已有不少分散的教程,我將適當(dāng)?shù)逆溄舆M(jìn)來(lái)。

          教程的內(nèi)容將在隨后逐漸添加,目前計(jì)劃的目錄如下,相應(yīng)內(nèi)容完成之后我將逐個(gè)更新此文的鏈接。  閱讀全文

          posted @ 2010-10-14 10:44 sky ao 閱讀(3017) | 評(píng)論 (3)  編輯

          淺談mock和stub
               摘要: 作為測(cè)試的基本概念,在開(kāi)發(fā)測(cè)試中經(jīng)常遇到mock和stub。之前認(rèn)為自己對(duì)這兩個(gè)概念已經(jīng)很明白了,但是當(dāng)決定要寫(xiě)下來(lái)并寫(xiě)清楚以便能讓不明白的人也能弄明白,似乎就很有困難。

          試著寫(xiě)下此文,以檢驗(yàn)自己是不是真的明白mock和stub。  閱讀全文

          posted @ 2010-08-26 15:28 sky ao 閱讀(10716) | 評(píng)論 (4)  編輯

          推薦升級(jí)easymock到新的3.0版本
               摘要: 一直在使用easymock作為mock工具,但是easymock有一個(gè)一直令我極其惱火的地方:easymock將interface和class的mock區(qū)分開(kāi),給出了針對(duì)interface mock的easyMock和針對(duì)class mock的easyMock class extension。兩種mock被嚴(yán)格區(qū)分開(kāi),連jar包都是兩個(gè),使用時(shí)不能混用,比如不能用easymock (非class extension)來(lái)mock class。

          easymock已經(jīng)發(fā)布了新的3.0版本,該版本的主要改進(jìn)就是消除上述的問(wèn)題,新版本中可以直接mock class,不再?gòu)?qiáng)制使用easyMock class extension。

          強(qiáng)烈推薦還在使用2.*的朋友們升級(jí)到3.0版本。  閱讀全文

          posted @ 2010-06-26 20:33 sky ao 閱讀(2230) | 評(píng)論 (1)  編輯

          TestNG官方文檔中文版(9)-重復(fù)失敗測(cè)試,junit測(cè)試,jdk1.4支持,編程式調(diào)用和Beanshell
               摘要: TestNG的官方文檔的中文翻譯版第5章,由于內(nèi)容太長(zhǎng)拆開(kāi),本文是5.10-5.14,主要話題是Rerunning failed tests,JUnit tests,JDK 1.4,Running TestNG programmatically和BeanShell and advanced group selection。  閱讀全文

          posted @ 2008-09-05 15:00 sky ao 閱讀(2280) | 評(píng)論 (1)  編輯

          TestNG官方文檔中文版(8)-類級(jí)別注解和并發(fā)
               摘要: TestNG的官方文檔的中文翻譯版第5章,由于內(nèi)容太長(zhǎng)拆開(kāi),本文是5.8-5.9,主要話題是Class level annotations和Parallel running and time-outs。  閱讀全文

          posted @ 2008-09-05 08:09 sky ao 閱讀(1754) | 評(píng)論 (0)  編輯

          Full software test Archive

          主站蜘蛛池模板: 桦甸市| 沿河| 丰镇市| 永城市| 青铜峡市| 安龙县| 建昌县| 交口县| 昌平区| 大田县| 枝江市| 自治县| 长阳| 乌鲁木齐县| 丹凤县| 白朗县| 长治市| 瓦房店市| 东乌珠穆沁旗| 绩溪县| 天镇县| 阿拉尔市| 临西县| 视频| 白河县| 会泽县| 平乐县| 中阳县| 大渡口区| 福安市| 香格里拉县| 肃南| 威海市| 林西县| 孟州市| 天峻县| 彩票| 体育| 集贤县| 苍山县| 荆州市|