Android測試驅動開發實踐

2021-06-13 05:09:59 字數 2161 閱讀 7687

在android應用開發中,相信很少有人在堅持先由設計人員做完整的概要設計 、詳細設計,然後交給程式設計師進行編碼實現了。通常是在有乙個大體框架的情況下,就開始進行具體編碼開發了。在這種情形下,開發速度可以有很大的提高,但是最終**質量卻不可避免的降低了。如何能既保持開發速度,同時又能保證開發質量呢?相信測試驅動開發是一種比較可行的開發方法學。

測試驅動開發首先通過設計測試用例,對從使用者需求到方法介面進行細化,在構想這些測試用例的過程,就是站在使用者角度上來思考系統的過程,而傳統方法中設計人員通常是站在技術人員的角度來思考問題,兩者比較,顯然測試驅動開發更有助於開發出更符合使用者需求的產品,同時開發出高復用性**。

測試驅動開發先寫測試,這樣就保證了充分考慮到了方法使用者需要,可以使方法更加合理。接下來進行**開發,以盡可能短的時間通過測試用例,在這個過程中暫時忘掉oo和設計模式吧。當通過測試用例之後,我們再回過頭來審視我們的**實現,再去除類間依賴關係,使用恰當的設計模式,這比在開始階段憑空想象要好得多。反覆上述過程,自然可以得到質量更高的**和系統。

然而,在android系統下,進行測試驅動開發又增加了額外的難度,怎樣對activity、provider、service、broadcaster等進行單元測試,是乙個必須要解決的問題,下面我們就以乙個實際系統的開發,來看一看怎麼解決這一系列的問題。

進行測試驅動開發,首先要做的就是建立乙個真正可執行的骨架系統,做android下的測試驅動開發也不例外。

先建立乙個android工程,這裡以mhcs為例,採用eclipse嚮導,建立該工程。假設這個工程在使用者第一次使用時,需要顯示三個介紹頁面,使用者在一張一張劃過之後,才開始使用正常功能。接下來我們就以這個功能為例,詳細描述一下在android下怎樣進行測試驅動開發。

下面在eclipse裡建立測試工程,選擇新工程型別為android junit test工程,同時選擇上面建立的工程作為被測試工程。

好了,最小可執行骨架系統已經建立好了,下面就可以進入正式的測試驅動開發流程了。 }}

public void testfirstruntrue()

這如你所看到的,這段**編譯器立即使出錯誤,不要擔心,測試驅動開發總是從不能通過的測試用例開始的,每次努力通過乙個測試用例,在通過乙個個測試用例的過程中取得進展。 

public boolean isfirstrun() 

public void setfirstrun(boolean isfirstrun)

private boolean isfirstrun = true;

但是,如果是第二次執行,系統不是還會顯示true嗎?這明顯是不正確的!一點兒沒錯,這段**確實沒有實現我們之前的想法,但是這段**卻可以通過我們的測試用例,測試驅動開發的原則就是以盡量快的速度通過測試用例。

下面新增一段**,測試當第二次執行時的情況:

public void testsecondandmorerun()

public boolean isfirstrun()
下面就剩下第一次執行可以通過,第二次執行不能通過。具體**如下所示:

@override

public void oncreate()

public void onterminate()

public boolean isfirstrun()

public void setfirstrun(boolean isfirstrun)

public final static string pref_is_first_run = "isfirstrun";

private sharedpreferences prefs = null;

private boolean isfirstrun = true;

在測試專案的測試類中新增**:

public void testfirstruntrue() 

public void testsecondandmorerun()

尤其需要注意的是testfirstruntrue方法中,先將sharedpreferences清空的處理,這樣可以模擬程式安裝後第一次執行。

執行測試專案的測試用例,終於可以看到完整功能的綠色通過標誌了。

實踐測試驅動開發

作為乙個有理想 有追求的程式設計師,你成天被各種名詞包圍著,你對其中乙個叫做敏捷的東西特別感興趣,因為它特別強調人的作用,這聽著都讓做程式設計師的你感到舒服。為了讓自己早日敏捷起來,你從眾多的敏捷實踐中選擇了乙個叫做測試驅動開發 test driven development,tdd 的作為你的起始...

測試開發驅動實踐

最近,測試驅動的概念慢慢被大家接受,kent back的書 測試驅動開發 中文版,也有中國電力出版社出版了。從2002年就開始,我使用測試驅動的方式開發,這兩年多裡,幾乎我所有的 都是基於測試驅動的方式進行開發。使用這種方式進行開發兩年,自然也有一些經驗。我這兩天看了kent back的 測試驅動開...

測試驅動實踐

wms3.0 的後台業務部分採用了測試驅動的開發方式。在開發過程中,對 pbunit 做了一次比較大的公升級,讓測試變得更容易和穩固。在我們的 tdd中,與標準的 tdd還是有一些不同的,在此列出我們的 tdd過程 1 設計,定義介面 2 測試概要設計 在 excel 中定義測試的場景 輸入 輸出 ...