亚洲色精品一区二区三区_真实国产老熟女粗口对白_亚洲日本VA午夜在线电影_二三四五六七无产乱码_国产SUV精品一区二区四_国产很色很黄很大爽的视频_男女啪啪免费体验区_人妻夜夜爽天天爽爽一区_少妇人妻在线视频_亚洲午夜性猛春交XXXX,夜晚做剧烈双人运动的软件,国产成人夜色在线影院,女子自慰喷白浆A片免费观看网站

JUnit

#軟件應用# 0 0
JUnit是用于編寫和運行Java程序單元測試的開源框架,由Kent Beck和Erich Gamma建立它提供了一組注解和斷言方法,,以及用于執(zhí)行測試的測試運行器,。其現逐漸成為源于Kent Beck的sUnit的xUnit家族中最為成功的一個,,被廣泛應用在Java開發(fā)領域中,,成為標準的單元測試框架之一,。
  • 外文名稱: JUnit
  • 創(chuàng)始人: Kent Beck,,Erich Gamma
詳細介紹 PROFILE +

基本介紹

JUnit是一個Java語言的單元測試框架,。它由Kent Beck和Erich Gamma建立,,逐漸成為源于Kent Beck的sUnit的xUnit家族中最為成功的一個。JUnit有它自己的JUnit擴展生態(tài)圈,。多數Java的開發(fā)環(huán)境都已經集成了JUnit作為單元測試的工具,。

JUnit是由Erich Gamma和Kent Beck編寫的一個回歸測試框架(regression testing framework)。Junit測試是程序員測試,,即所謂白盒測試,,因為程序員知道被測試的軟件如何(How)完成功能和完成什么樣(What)的功能。Junit是一套框架,,繼承TestCase類,,就可以用Junit進行自動測試了。

安裝

安裝很簡單,,先到以下地址下載一個最新的zip包:

下載完以后解壓到你喜歡的目錄下,,假設是JUNIT_HOME,然后將JUNIT_HOME下的junit.jar包加到你的系統(tǒng)的CLASSPATH環(huán)境變量中,,對于IDE環(huán)境,,對于需要用到的junit的項目增加到lib中,其設置不同的IDE有不同的設置,,這里不多講,。

測試

最簡單的范例如下:

1、創(chuàng)建一個TestCase的子類

package junitfaq;

import java.util.*;

import junit.framework.*;

public class SimpleTest extends TestCase {

public SimpleTest(String name) {

super(name);

}

2,、寫一個測試方法斷言期望的結果

public void testEmptyCollection(){

Collection collection = new ArrayList();

assertTrue(collection.isEmpty());

}

注意:JUnit推薦的做法是以test作為待測試的方法的開頭,,這樣這些方法可以被自動找到并被測試。

3,、寫一個suite()方法,,它會使用反射動態(tài)的創(chuàng)建一個包含所有的testXxxx方法的測試套件

public static Test suite() {

return new TestSuite(SimpleTest.class);

}

4、寫一個main()方法以文本運行器的方式方便的運行測試

public static void main(String args[]) {

junit.textui.TestRunner.run(suite());

}

}

5,、運行測試

以文本方式運行:

java junitfaq.SimpleTest

通過的測試結果是:

.

Time: 0

OK (1 tests)

Time上的小點表示測試個數,,如果測試通過則顯示OK。否則在小點的后邊標上Fail,,表示該測試失敗,。

每次的測試結果都應該是OK的,這樣才能說明測試是成功的,,如果不成功就要馬上根據提示信息進行修正了,。

如果JUnit報告了測試沒有成功,,它會區(qū)分失敗(failures)和錯誤(errors),。失敗是你的代碼中的assert方法失敗引起的,;而錯誤則是代碼異常引起的,例如ArrayIndexOutOfBoundsException,。

以圖形方式運行:

java junit.swingui.TestRunner junitfaq.SimpleTest

通過的測試結果在圖形界面的綠色條部分,。

以上是最簡單的測試樣例,在實際的測試中我們測試某個類的功能是常常需要執(zhí)行一些共同的操作,,完成以后需要銷毀所占用的資源(例如網絡連接,、數據庫連接,關閉打開的文件等),,TestCase類給我們提供了setUp方法和tearDown方法,,setUp方法的內容在測試你編寫的TestCase子類的每個testXxxx方法之前都會運行,而tearDown方法的內容在每個testXxxx方法結束以后都會執(zhí)行,。這個既共享了初始化代碼,,又消除了各個測試代碼之間可能產生的相互影響。

實踐

不要認為壓力大,,就不寫測試代碼。相反編寫測試代碼會使你的壓力逐漸減輕,,因為通過編寫測試代碼,,你對類的行為有了確切的認識。你會更快地編寫出有效率地工作代碼,。

下面是一些具體的編寫測試代碼的技巧或較好的實踐方法:

1.不要用TestCase的構造函數初始化Fixture,,而要用setUp()和tearDown()方法。

2.不要依賴或假定測試運行的順序,,因為JUnit利用Vector保存測試方法,。所以不同的平臺會按不同的順序從Vector中取出測試方法。

3.避免編寫有副作用的TestCase,。例如:如果隨后的測試依賴于某些特定的交易數據,,就不要提交交易數據。簡單的回滾就可以了,。

4.當繼承一個測試類時,,記得調用父類的setUp()和tearDown()方法。

5.將測試代碼和工作代碼放在一起,,一邊同步編譯和更新,。(使用Ant中有支持junit的task.)

6.測試類和測試方法應該有一致的命名方案。如在工作類名前加上test從而形成測試類名,。

7.確保測試與時間無關,,不要依賴使用過期的數據進行測試,。導致在隨后的維護過程中很難重現測試。

8.如果你編寫的軟件面向國際市場,,編寫測試時要考慮國際化的因素,。不要僅用母語的Locale進行測試。

9.盡可能地利用JUnit提供地assert/fail方法以及異常處理的方法,,可以使代碼更為簡潔,。

10.測試要盡可能地小,執(zhí)行速度快,。

11.不要硬性規(guī)定數據文件的路徑,。

12.利用Junit的自動異常處理書寫簡潔的測試代碼

事實上在Junit中使用try-catch來捕獲異常是沒有必要的,Junit會自動捕獲異常,。那些沒有被捕獲的異常就被當成錯誤處理,。

13.充分利用Junit 的assert/fail方法

assertSame()用來測試兩個引用是否指向同一個對象

assertEquals()用來測試兩個對象是否相等

14.確保測試代碼與時間無關

15.使用文檔生成器做測試文檔。

JUnit和ant結合

ant提供了兩個target:junit和junitreport運行所有測試用例,,并生成html格式的報表

具體操作如下:

1.將 junit.jar 放在 ANT_HOMElib 目錄下

2.修改 build.xml,,加入如下 內容:

-------------- One or more tests failed, check the report for detail... -----------------------------

運行這個target,ant會運行每個TestCase,,在report目錄下就有了很多TEST*.xml和一些網頁打開report目錄下的 index.html就可以看到很直觀的測試運行報告,,一目了然。

在Eclipse中開發(fā),、運行JUnit測試相當簡單,。因為Eclipse本身集成了JUnit相關組件,并對JUnit的運行提供了無縫的支持,。

使用幫助

junit3.x

我們通常使用junit 3.8

(1),、使用junit3.x版本進行單元測試時,測試類必須要繼承于TestCase父類,;

(2),、測試方法需要遵循的原則:

A、public的

B,、void的

C,、無方法參數

D、方法名稱必須以test開頭

(3),、不同的Test Case之間一定要保持完全的獨立性,,不能有任何的關聯。

(4),、我們要掌握好測試方法的順序,,不能依賴于測試方法自己的執(zhí)行順序。

demo:

public class TestMyNumber extends TestCase {

private MyNumber myNumber;

public TestMyNumber(String name) {

super(name);

}

// 在每個測試方法執(zhí)行 [之前] 都會被調用

@Override

public void setUp() throws Exception {

// System.out.println("歡迎使用Junit進行單元測試…");

myNumber = new MyNumber();

}

// 在每個測試方法執(zhí)行 [之后] 都會被調用

@Override

public void tearDown() throws Exception {

// System.out.println("Junit單元測試結束…");

}

public void testDivideByZero() {

Throwable te = null;

try {

myNumber.divide(6, 0);

Assert.fail("測試失敗");

} catch (Exception e) {

e.printStackTrace();

te = e;

}

Assert.assertEquals(Exception.class, te.getClass());

Assert.assertEquals("除數不能為 0 ", te.getMessage());

}

}

junit4.x

(1),、使用junit4.x版本進行單元測試時,,不用測試類繼承TestCase父類,,因為,junit4.x全面引入了Annotation來執(zhí)行我們編寫的測試,。

(2),、junit4.x版本,引用了注解的方式,,進行單元測試,;

(3)、junit4.x版本我們常用的注解:

A,、@Before 注解:與junit3.x中的setUp()方法功能一樣,,在每個測試方法之前執(zhí)行;

B,、@After 注解:與junit3.x中的tearDown()方法功能一樣,,在每個測試方法之后執(zhí)行;

C,、@BeforeClass 注解:在所有方法執(zhí)行之前執(zhí)行,;

D、@AfterClass 注解:在所有方法執(zhí)行之后執(zhí)行,;

E,、@Test(timeout=xxx)注解:設置當前測試方法在一定時間內運行完,否則返回錯誤,;

F,、@Test(expected=Exception.class)注解:設置被測試的方法是否有異常拋出。拋出異常類型為:Exception.class,;

G、@Ignore注解:注釋掉一個測試方法或一個類,,被注釋的方法或類,,不會被執(zhí)行。

demo:

package com.an.junit;

import static org.junit.Assert.*;

import org.junit.After;

import org.junit.AfterClass;

import org.junit.Before;

import org.junit.BeforeClass;

import org.junit.Test;

public class TestMyNumber {

private MyNumber myNumber;

@BeforeClass

// 在所有方法執(zhí)行之前執(zhí)行

public static void globalInit() {

System.out.println("init all method...");

}

@AfterClass

// 在所有方法執(zhí)行之后執(zhí)行

public static void globalDestory() {

System.out.println("destory all method...");

}

@Before

// 在每個測試方法之前執(zhí)行

public void setUp() {

System.out.println("start setUp method");

myNumber = new MyNumber();

}

@After

// 在每個測試方法之后執(zhí)行

public void tearDown() {

System.out.println("end tearDown method");

}

@Test(timeout=600)// 設置限定測試方法的運行時間 如果超出則返回錯誤

public void testAdd() {

System.out.println("testAdd method");

int result = myNumber.add(2, 3);

assertEquals(5, result);

}

@Test

public void testSubtract() {

System.out.println("testSubtract method");

int result = myNumber.subtract(1, 2);

assertEquals(-1, result);

}

@Test

public void testMultiply() {

System.out.println("testMultiply method");

int result = myNumber.multiply(2, 3);

assertEquals(6, result);

}

@Test

public void testDivide() {

System.out.println("testDivide method");

int result = 0;

try {

result = myNumber.divide(6, 2);

} catch (Exception e) {

fail();

}

assertEquals(3, result);

}

@Test(expected = Exception.class)

public void testDivide2() throws Exception {

System.out.println("testDivide2 method");

myNumber.divide(6, 0);

fail("test Error");

}

public static void main(String[] args) {

}

}

特色功能

優(yōu)點

另外junit是在極限編程和重構(refactor)中被極力推薦使用的工具,,因為在實現自動單元測試的情況下可以大大的提高開發(fā)的效率,,但是實際上編寫測試代碼也是需要耗費很多的時間和精力的,那么使用這個東西好處到底在哪里呢,?筆者認為是這樣的:

極限編程

要求在編寫代碼之前先寫測試,,這樣可以強制你在寫代碼之前好好的思考代碼(方法)的功能和邏輯,否則編寫的代碼很不穩(wěn)定,,那么你需要同時維護測試代碼和實際代碼,,這個工作量就會大大增加。因此在極限編程中,,基本過程是這樣的:構思-> 編寫測試代碼-> 編寫代碼-> 測試,,而且編寫測試和編寫代碼都是增量式的,,寫一點測一點,在編寫以后的代碼中如果發(fā)現問題可以較快的追蹤到問題的原因,,減小回歸錯誤的糾錯難度,。

重構

其好處和極限編程中是類似的,因為重構也是要求改一點測一點,,減少回歸錯誤造成的時間消耗,。

其他情況

我們在開發(fā)的時候使用junit寫一些適當的測試也是有必要的,因為一般我們也是需要編寫測試的代碼的,,可能原來不是使用的junit,,如果使用junit,而且針對接口(方法)編寫測試代碼會減少以后的維護工作,,例如以后對方法內部的修改(這個就是相當于重構的工作了),。另外就是因為junit有斷言功能,如果測試結果不通過會告訴我們哪個測試不通過,,為什么,,而如果是像以前的一般做法是寫一些測試代碼看其輸出結果,然后再由自己來判斷結果是否正確,,使用junit的好處就是這個結果是否正確的判斷是它來完成的,,我們只需要看看它告訴我們結果是否正確就可以了,在一般情況下會大大提高效率,。

特性

JUnit是一個開放源代碼的Java測試框架,,用于編寫和運行可重復的測試。他是用于單元測試框架體系xUnit的一個實例(用于java語言),。它包括以下特性:

1,、用于測試期望結果的斷言(Assertion)

2、用于共享共同測試數據的測試工具

3,、用于方便的組織和運行測試的測試套件

4,、圖形和文本的測試運行器

本百科詞條由網站注冊用戶【 CN109625 】編輯上傳提供,當前頁面所展示的詞條介紹涉及宣傳內容屬于注冊用戶個人編輯行為,,網站不完全保證內容信息的準確性,、真實性,也不代表本站立場,。 版權聲明 反饋 我要認領
最新評論
相關知識文章
十大編程軟件排行榜 編程開發(fā)工具大全 c語言編程軟件有哪些
世界上主流的編程語言有C,、Java、Python,、C++,、C#、Visual Basic、PHP等,,針對這些編程語言,,又有相對應的Visual C++、Visual Studio,、Eclipse,、Dev-C++、Notepad++,、MyEclipse,、JDK、Code::Blocks,、Gcc,、Sublime Text、IntelliJ IDEA,、Ultraedit,、C-Free等編程軟件,被廣泛運用,,下面跟隨maigoo網編輯一起了解下這些編程工具,!
十大裝修軟件推薦 裝修設計軟件排名 裝修軟件app哪個好
近些年,各大小家裝公司逐漸向數字化轉型,。隨著行業(yè)內一線品牌齊家網在香港的上市,,標志著互聯網家裝模式的成熟。如今線上家裝領域中,,土巴兔裝修,、酷家樂設計師、齊家,、愛空間裝修,、好好住、住小幫,、知戶型等裝修軟件,,已成為越來越多業(yè)主的選擇,這些家裝設計軟件帶來的一站式服務,,讓裝修變得更省心。下面和maigoo編輯一起看看,!
十大AI換臉軟件排行 視頻換臉軟件哪個好 ai換臉工具推薦
在人工智能的大潮下,,許多ai換臉軟件紛紛進入市場,雖然存在隱私問題,,但憑借獨特的娛樂性,,依舊掀起了一股換臉熱潮,那么AI換臉軟件有哪些?ai換臉工具哪個好,?下面,,maigoo編輯為大家分享十大AI換臉軟件排行榜,包括DeepFaceLab,、Faceswap,、Openfaceswap、FakeAPP,、Swapface,、Remaker、Reface等熱門換臉p圖軟件,,一起來了解下吧,。
十大室內設計軟件 裝修設計軟件排名 家裝設計軟件哪個最好用
室內設計是一個專業(yè)性極強的領域,設計師要在安全,、實用,、有限預算的前提下,充分考慮空間,、色彩,、光影、裝飾,、陳設,、綠化等要素進行設計。那么在當今室內設計領域,,有哪些好用的裝修設計軟件呢,?3DS MAX、AutoCAD,、草圖大師,、Photoshop、ArchiCAD,、Vray,、Lightscape、Sweet Home 3D等室內設計軟件如何,?下面跟隨買購網編輯一起看看,!
十大群發(fā)軟件推薦 微信群發(fā)軟件哪個好 群發(fā)短信軟件有哪些
消息群發(fā)功能適用于旅游、教育,、金融,、郵政等各行各業(yè),可發(fā)送節(jié)日祝福,、天氣變化,、扣款/付款通知、催收、特價商品提醒等各種類型的信息,。那么對個人用戶而言,,好用的微信群發(fā)軟件、短信群發(fā)軟件有哪些呢,?下面maigoo小編為大家分享十大好用的群發(fā)軟件,,包括騰訊云短信、阿里云通信,、中國移動云MAS,、天翼云通信、263云通信,、網易云信IM等等,,一起來了解下吧
國內十大聊天工具 國內聊天軟件排行 聊天交友軟件推薦
近五年來,我國移動社交用戶規(guī)模持續(xù)增長,,到2019年已有7.77億人左右,,同時,各類社交產品層出不窮,,企圖從中分一杯羹,;那么時至今日,用戶活躍度最高的聊天軟件有哪些呢,?微信,、QQ、陌陌,、釘釘,、探探、Soul,、積目,、米聊等聊天工具市場占有率如何?下面跟隨maigoo小編看看這些聊天交友軟件,!
七大去馬賽克軟件排行 視頻去馬賽克軟件哪個好用 馬賽克去除工具推薦
馬賽克是使用頻率最高,、使用范圍最廣的一種圖片/視頻處理手段,涉及新聞,、動漫,、電影、連續(xù)劇,、寫真等方面,。作為一種具備了數十年歷史的處理技術,馬賽克沿用到今天有什么破解方法呢,?Maigoo小編為此盤點了一批去除馬賽克的軟件,其中有JavPlayer、Video Enhancer,、DeepCreamPy,、TecoGAN、Face Depixelizer,、EnhanceNet等視頻馬賽克去除工具,,一起看看!
十大跑分軟件排行 電腦跑分軟件哪個好 靠譜的電腦檢測軟件推薦
電腦跑分,,即是利用軟件對電腦硬件進行性能測試,,分數越高,在一定程度上代表著性能越強,。如今電腦配置各不相同,,要想更準確的測試出性能如何,得先知道跑分軟件哪個好,,接下來請跟隨maigoo小編一起看看3D Mark,、魯大師、AIDA64,、PCMark,、FurMark、GPU-Z,、CPU-Z,、Fritz Chess Benchmark、GeekBench等電腦跑分軟件,!
十大看短劇的軟件 追短劇aap哪個好 好看的短劇app推薦
好看的短劇app有哪些,?短劇行業(yè)不斷發(fā)展,市場規(guī)模不斷擴大,,中國的短劇作品已出口至其它國家,。本文中Maigoo小編帶來了十款好用的短劇APP推薦,名列其中的有紅果短劇,、河馬劇場,、星芽短劇、麥萌短劇,、山海短劇等國內短劇app,,還有ReelShort、DramaBox,、ShortMax等出海短劇app,。各app的運營情況請以實際為準,本文僅供參考,。
十大國外社交軟件app 國外聊天軟件哪個最火 外國常用聊天app盤點
不同國家都有自己流行的社交軟件,,有的軟件用戶基數龐大,,有的安全私密性更高,有的雖小眾但使用體驗好,。那么,,你知道國外用什么聊天軟件嗎?下面,,maigoo小編就為大家盤點國外最火的十大聊天軟件,,包括WhatsApp、Facebook Messenger,、Instagram Direct,、iMessage、Skype,、Telegram等,,一起來了解下這些國外社交軟件app吧。
十大多開分身app排行 分身軟件哪個好用 應用分身軟件推薦
應用分身軟件可以讓我們在手機上安裝兩個同樣的app,,并且不受限制的使用,,滿足我們的社交、工作和游戲需求,。本文中Maigoo小編為大家整理了時下較熱門的十大多開分身app,,分別是小X分身、雙開助手微分身版,、悟空分身,、分身大師、麻吉分身,、無盡分身,、微分身王、VMOS Pro等,。這些多開軟件你都用過嗎,,一起來了解下。
十大體育直播軟件 體育直播app哪個好 體育賽事直播app推薦
每年全球各大賽事不斷,,目前體育直播觀看的軟件有騰訊體育,、央視體育、咪咕視頻,、愛奇藝體育,、企鵝體育等(包括視頻直播和文字直播)。買購小編要提醒大家的是,,這些體育直播平臺中,,部分賽事直播是要收費,具體以官方實時調整為準,,本榜單不具有唯一性,。
國外十大最火的短視頻app推薦 外國人常用的短視頻軟件有哪些
在這個視頻當道的時代,,每個人的生活與各種短視頻app緊密相連。本文中,,買購網編輯就帶大家看看國外短視頻軟件有哪些,、國外短視頻app哪個最火,例如TikTok,、Likee、Instagram,,以及Kwai,、YouTube、Snapchat,、Triller,、Vmate、Mico等,,都較具代表性,。下面一起了解下這些國外短視頻平臺。
十大手游模擬器排行榜 最好用的手游模擬器 手機游戲模擬器推薦
模擬器在手游行業(yè)中的地位越來越重要,,早在2020年,,我國模擬器用戶數量就已突破1.3億。那么好用的手游模擬器有哪些呢,?下面maigoo小編為大家分享十大手游模擬器排行榜,,包括騰訊手游助手、雷電模擬器,、夜神模擬器,、MuMu模擬器、逍遙模擬器,、藍疊模擬器等等等,,都當下市場份額較高的手游模擬器,一起來了解下吧,。
十大解壓軟件 解壓縮軟件哪個好用 文件壓縮軟件哪個好
在這個信息碎片化的時代,,電腦上各種類型的文件數不勝數,一款好用的壓縮軟件,,既能以較高質量集合保存?zhèn)€人信息,,又能節(jié)省硬盤空間;縱觀全網,,備受推崇的解壓縮軟件有WinRAR,、7-zip、2345好壓,、360壓縮,、Bandizip,、快壓、WinZip,、PeaZip等,,下面跟隨MaiGoo網編輯了解下這些解壓軟件!
十大ai聊天自動軟件 ai聊天APP哪個好 AI對話聊天軟件推薦
隨著AI的盛行,,和AI聊天已經成為許多年輕人的發(fā)泄出口,,AI能做到24小時的情感陪伴,情緒價值拉滿,,那ai聊天APP哪個好呢,?Maigoo小編為大家?guī)砹耸骯i聊天自動軟件,如:ChatGPT,、Talkie,、Character.Ai,、Replika,、豆包、Claude,、AlienChat等,,一起來看看吧。
十大手機定位軟件 定位軟件哪個好 手機查位置軟件有哪些
手機定位功能多用于行車導航,、手機定位追蹤,,或服務類軟件,如美團,、貓眼等,;那么出于人身安全考慮,有哪些手機定位軟件適合家屬或朋友使用,?能否通過手機號定位一個人的位置,?下面跟隨maigoo小編來看看微關愛、時刻守護,、米兔,、怕怕、陽光守護,、Lookus,、Tracking定位、找?guī)褪謾C定位等熱門手機查位置軟件,!
十大國產操作系統(tǒng)排行榜 最好用的國產操作系統(tǒng)推薦
科學技術是第一生產力,。在21世紀,“技術獨立”對一個國家的重要性不言而喻,。那么,,現階段國產操作系統(tǒng)有哪些,,國產電腦操作系統(tǒng)哪個相對較好?下面Maigoo編輯為大家分享十大國產操作系統(tǒng)排行榜,,包括鴻蒙HarmonyOS,、歐拉OpenEuler、中標麒麟NeoKylin,、統(tǒng)信UOS,、中科方德桌面操作系統(tǒng)、普華Linux,、深度Deepin等等,,一起來了解下吧。
十大主流手機操作系統(tǒng) 手機系統(tǒng)性能排名 最好用的手機系統(tǒng)
最好用的手機系統(tǒng)是什么,?操作系統(tǒng)是一個手機品牌從市場中脫穎而出的關鍵,它會直接影響到產品的性能和用戶的體驗,。本文中,,Maigoo小編立足全國手機市場,盤點了十大主流手機操作系統(tǒng),,名列前茅的有iOS,、HarmonyOS、OriginOS,,以及FlymeOS,、ColorOS、HyperOS,、MagicOS,、realme UI、MyOS等,。一起來詳細了解下,。
中國臺灣十大最常用的軟件 臺灣民眾常用app排行 臺灣最火的APP應用
相關統(tǒng)計數據顯示,臺灣同胞們最喜歡的應用是實時通訊類APP,,其次是社群平臺類APP,、地圖APP、娛樂類APP等,。本文中,,maigoo小編就帶大家看看臺灣常用的軟件有哪些,一起了解下臺灣app排名榜單,,例如Line,、Messenger、Instagram,、TikTok,、YouTube,、Uber、?Foodpanda等,,都是極具代表性的,,在臺灣擁有廣泛的用戶基礎。