国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
怎樣選擇Java測(cè)試框架 JUnit還是TestNG?

自動(dòng)測(cè)試成為你Java項(xiàng)目中的一部分了嗎?你最愛的測(cè)試框架是什么哪?使用的又是哪一種標(biāo)準(zhǔn)?
本文的4名開發(fā)者將和你一起分享他們?cè)谧詣?dòng)測(cè)試領(lǐng)域中的觀點(diǎn)和經(jīng)驗(yàn)。當(dāng)你的項(xiàng)目面臨測(cè)試階段的時(shí)候,希望這些觀點(diǎn)能對(duì)你有所幫助。如果你也想要分享自己的觀點(diǎn),請(qǐng)回帖參與討論。我們真摯的希望我們能夠?yàn)檫@個(gè)領(lǐng)域中新手提供一些有用建議和標(biāo)準(zhǔn)。

文章最后列出了文章的作者和提到的測(cè)試框架。

論自動(dòng)測(cè)試
                    ——Tom Wheeler
當(dāng)我給那些有經(jīng)驗(yàn)的開發(fā)者上課時(shí),我發(fā)現(xiàn)只有40%左右的人寫測(cè)試。大約還有40%的人甚至從來沒聽說過JUnit,這其中更有一般人完全沒有單元測(cè)試的概念。開發(fā)者通常處于在項(xiàng)目經(jīng)理制定的緊促計(jì)劃的壓力中——而那些項(xiàng)目經(jīng)理同樣處于客戶的壓力之下,客戶希望他們的軟件能夠被快速的開發(fā)出。不幸的是,測(cè)試是項(xiàng)目中的一個(gè)重要部分而很多人卻輕易的將它砍掉。真是目光短淺,那種做法只會(huì)讓你的應(yīng)用成為bug的樂園而且會(huì)大大超出你的計(jì)劃時(shí)間。

為什么會(huì)這樣?因?yàn)閷懽詣?dòng)測(cè)試實(shí)際上省下了大量的運(yùn)行時(shí)間。每個(gè)開發(fā)者都會(huì)出錯(cuò)而通過測(cè)試可以幫助找到這些錯(cuò)誤??赡苁止y(cè)試在某些方面要比自動(dòng)測(cè)試更快一些,但是手工測(cè)試需要用戶界面。手工測(cè)試的結(jié)果并不一致,因?yàn)闇y(cè)試者和開發(fā)者一樣都會(huì)犯錯(cuò)。而一個(gè)自動(dòng)測(cè)試總會(huì)保持結(jié)果的一致性。

也許更重要的是,當(dāng)一個(gè)舊bug被修復(fù)或者新特性被添加時(shí)會(huì)引入更多的bug。你需要在改變系統(tǒng)后重新運(yùn)行所有的測(cè)試。這也是自動(dòng)測(cè)試的價(jià)值體現(xiàn),因?yàn)閷?duì)比手工測(cè)試的開銷,自動(dòng)測(cè)試的開銷是微不足道的。如果開發(fā)者經(jīng)常測(cè)試,他們可以更容易地發(fā)現(xiàn)并修改問題,這可以保證代碼質(zhì)量并保證團(tuán)隊(duì)開發(fā)的進(jìn)度。

比較JUnit和TestNG
                                ——Meera Subbraro
Martin Fowler曾說過,軟件開發(fā)領(lǐng)域中此前從沒有過這樣的事情:很少幾行代碼對(duì)大量的代碼起了如此重要的作用。JUnit過去直到如今依然是單元測(cè)試的一個(gè)標(biāo)準(zhǔn)。它是最流行的開源工具。當(dāng)然現(xiàn)在我們有許多有別于JUnit的其他的開源工具。我自己,除了使用JUnit外,我還是用TestNG。下面我們來談?wù)勏逻@兩個(gè)框架。

  • JUnit和TestNG都使用Annotation,都使得測(cè)試簡(jiǎn)單有趣。如果你寫兩個(gè)測(cè)試類,一個(gè)使用JUnit一個(gè)使用TestNG,除非你看到它們import語句,否則你幾乎看不到他們之間的差別。
  • 如果你是一個(gè)TDD的信徒,通過運(yùn)行測(cè)試來完成你的持續(xù)集成過程。TestNG可能更加適合。重新運(yùn)行失敗的測(cè)試這樣的機(jī)制對(duì)于每天都進(jìn)行編譯來說非常有幫助。而這個(gè)特性只有TestNG才有。
  • TestNG的另一個(gè)亮點(diǎn)是支持參數(shù)化。在JUnit中如果你要測(cè)試不同的參數(shù),你需要寫不同的測(cè)試用例來覆蓋不同參數(shù)。而在TestNG,通過使用xml配置文件做到。開發(fā)者可能會(huì)抱怨XML文件”這下好了,除了要維護(hù)那些測(cè)試用例,我還要維護(hù)那么一堆xml文件”。(譯者按:JUnit4也已經(jīng)支持參數(shù)化測(cè)試了)
  • JUnit生成的HTML格式的報(bào)告非常好。我使用TestNG和Java 6,生成的報(bào)告遠(yuǎn)沒有JUnit那么漂亮。


最后,兩個(gè)框架都有自己的長處和弱處,必要時(shí)我們可以同時(shí)使用。讓我們使用這兩個(gè)偉大的框架,享受編寫測(cè)試的快樂吧。

我為什么從JUnit換到了TestNG上
                                                    ——Andres Almiray
當(dāng)我開始編寫測(cè)試程序時(shí)候,我選擇了JUnit3.x。因?yàn)槟莻€(gè)時(shí)候它是唯一的開源選擇,而且有著相當(dāng)詳盡的文檔和成堆的書供我參考。在此基礎(chǔ)上還有許多擴(kuò)展如dbUnit,xmlUnit幫助測(cè)試一些大型組件。但是如果我們需要面對(duì)更多復(fù)雜的測(cè)試,通常是集成/功能測(cè)試,很明顯JUnit會(huì)力不從心。那就是為什么我換到TestNG上。Cedric和Alexandru TestNG的作者從一開始就很明確,TestNG是為更廣的測(cè)試場(chǎng)合而設(shè)計(jì),而不僅是單元測(cè)試。TestNG可以運(yùn)行沒有修改過的JUnit測(cè)試,這使得兩者的轉(zhuǎn)換非常平滑。

稍后發(fā)布的JUnit4.x在細(xì)節(jié)上非常類似TestNG,這也彌補(bǔ)了這兩個(gè)框架的裂痕。TestNG仍然是我最喜歡的,而且它仍然保持更新?,F(xiàn)在在開源的Java測(cè)試框架中仍然有新進(jìn)者,easyb,一個(gè)基于Groovy行為驅(qū)動(dòng)開發(fā)的測(cè)試工具,為Java和Groovy測(cè)試。通過編寫合理的測(cè)試或是假定一個(gè)任務(wù),它可以視為一種規(guī)范盡管它是可執(zhí)行代碼。如果你在Ruby世界中使用Rspec一樣。

為什么JUnit仍然是首選
                                    ——Aslam Khan
像許多人開始測(cè)試驅(qū)動(dòng)開發(fā)和單元測(cè)試一樣,我也是從JUnit3.x起步的。我發(fā)現(xiàn)JUnit是最廣泛的工具,出現(xiàn)在各種不同的地方(ANT,Maven,Eclipse,IntelliJ IDEA, 等)。它也很容易介紹給那些新團(tuán)隊(duì)。我也使用TestNG對(duì)它的多樣性同樣印象深刻。然而,JUnit的大量插件(dbUnit,xmlUnit等)使得Junit仍然是首選的。如果你花大量的時(shí)間在Spring上,那么基于Junit的Srping ApplicationContext aware測(cè)試用例會(huì)帶來優(yōu)勢(shì)。為了測(cè)試前臺(tái),我?guī)缀踔皇褂肧elenium。我曾經(jīng)涉足過Canoo和其他的框架,但是發(fā)現(xiàn)這些途徑都是反TDD模式的。使用Selenium,我可以處理Selenium測(cè)試腳本和記錄,給任何需要的人并日后處理。

如果我們談?wù)摰氖羌兇獾腡DD,即書寫良好的代碼(不僅僅是良好的測(cè)試)需要增加一個(gè)mock測(cè)試。對(duì)于mocking,我使用Jmock,它和Junit配合良好,通過基于mock的方式和程序內(nèi)部邊界,我得到了設(shè)計(jì)良好的,互相通信的對(duì)象。這在可讀性和可維護(hù)性上邁出了重要的一步。EasyMock也不錯(cuò),但是Jmock是我個(gè)人的首選。

從Java世界上溯到Ruby世界中,RSpec很優(yōu)秀而且也有DSL來描述場(chǎng)景。既然Rbehave已經(jīng)融合進(jìn)了Rspec,這樣的整合將成為Ruby世界的首選。有趣的是,Rbehave是從Jbehave衍生來來,它是一個(gè)行為驅(qū)動(dòng)開發(fā)測(cè)試框架。如果你喜歡BDD模式來收集和確定需求,你會(huì)喜歡Jbehave和RSpec.

 

  • Tom Wheeler 是Object Computing, Inc. (OCI)公司高級(jí)程序員, 目前在Boeing從事咨詢行業(yè) 。他住在St. Louis, Missouri地區(qū).
  • Andres Almiray 是Groovy Zone的領(lǐng)導(dǎo)者. 從1996年起從事Java開發(fā),并致力于可擴(kuò)展的web開發(fā)和桌面程序。他目前的興趣包括測(cè)試開發(fā),軟件架構(gòu),Groovy,Swing和Spring。
  • Meera Subbarao 是IT Book Zone 的領(lǐng)導(dǎo). 她是Stelligent Incorporated 公司高級(jí)軟件咨詢. 過去的7年里,Meera致力于J2EE和.NET技術(shù)之中。
  • Aslam Khan Architects Zone and SOA Zone 的領(lǐng)導(dǎo).   他是一家北美軟件資訊公司PBT Group的技術(shù)領(lǐng)導(dǎo)。

資源:

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
Top 10 盤點(diǎn):2019 Java 開發(fā)者必學(xué)的測(cè)試框架、工具和庫!
一文了解十大 Java 開發(fā)者必備測(cè)試框架!
eclipse安裝TestNG
JAVA 程序員需要用到 10 個(gè)測(cè)試框架和庫
8個(gè)超實(shí)用的Java測(cè)試工具和框架
Java開源測(cè)試工具匯總 三億文庫
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服