網(wǎng)上關(guān)于Android單元測(cè)試的文字帖子不勝枚舉,看完之后能解決問(wèn)題是好事,不能解決問(wèn)題那就是浪費(fèi)時(shí)間和經(jīng)歷。大多數(shù)文章來(lái)自于這篇文章:http://rexstjohn.com/unit-testing-with-android-studio/
創(chuàng)新互聯(lián)-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價(jià)比漣水網(wǎng)站開(kāi)發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫(kù),直接使用。一站式漣水網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋漣水地區(qū)。費(fèi)用合理售后完善,十年實(shí)體公司更值得信賴。
自從投入到Android Studio IDE之后基本上就賴著不走了。這里僅討論AS(Android Studio)中Android單元測(cè)試。
開(kāi)發(fā)一個(gè)Android應(yīng)用單元測(cè)試這種程序員的自我修養(yǎng)和基本道德測(cè)試是必不可少的。其單元測(cè)試分為兩塊,一塊是依賴Android API(平臺(tái))的單元測(cè)試,一塊是不依賴Android API的單元測(cè)試。
1.不依賴AndroidAPI的單元測(cè)試
這一塊就和通常開(kāi)發(fā)JavaSE,EE應(yīng)用的單元測(cè)試一樣,測(cè)試框架更加需要自行選擇即可。在通過(guò)AS創(chuàng)建Android應(yīng)用模塊時(shí),默認(rèn)在build.gradle文件中添加了測(cè)試庫(kù)junit依賴。
如果在AS中使用不依賴AndroidAPI的單元測(cè)試,一圖頂萬(wàn)言:
圖一 圖二
如圖二所示,在Build Variants的Test Artifact設(shè)置為Unit tests之后,test源碼目錄呈現(xiàn)出IDEA風(fēng)格的綠色目錄。 這是就可以運(yùn)行測(cè)試類或測(cè)試套件,比較容易就不多解釋了。
2. 依賴Android API的單元測(cè)試
2.1 AS中配置Android單元測(cè)試
Android基于junit3框架提供了Android的單元測(cè)試框架,要在Android中使用單元測(cè)試就需要依賴android.test包下的具體類。下面是AS中配置Android單元測(cè)試的方法:
圖三
2.2 Android單元測(cè)試示例
2.2.1 一個(gè)單元測(cè)試類:
package secondriver.heathfood.test; import android.test.InstrumentationTestCase; import com.orhanobut.logger.Logger; import secondriver.heathfood.App; import secondriver.heathfood.logic.TianGou; import secondriver.heathfood.pojo.FoodCla***esult; import secondriver.heathfood.pojo.FoodDetail; import secondriver.heathfood.pojo.FoodDetailResult; /** * Author : secondriver * Created : 2016/1/20 */ public class TestTianGou extends InstrumentationTestCase { public TianGou tianGou; public void setUp() { tianGou = new TianGou(App.restTemplate()); } public void test_queryFoodClassByParentId1() { FoodCla***esult result = tianGou.queryFoodClassByParentId(0); assertTrue(result.isStatus()); } }
關(guān)于Android的單元測(cè)試基類參見(jiàn):
http://www.oschina.net/question/54100_27061?fromerr=NydwIvQR 。
http://www.uml.org.cn/mobiledev/201306074.asp
注意:Android單元測(cè)試的測(cè)試類寫(xiě)法遵循的是Junit3.
2.2.2 執(zhí)行單元測(cè)試
在執(zhí)行單元測(cè)試之前,講Build Variant的Test Artifact設(shè)置為圖一所示值。
執(zhí)行Android Tester之后,輸出截圖:
圖四
從截圖上得知未授網(wǎng)絡(luò)訪問(wèn)權(quán)權(quán)限。
2.2.3 AS中Android單元測(cè)試控制臺(tái)
圖五
在網(wǎng)上找關(guān)于Android單元測(cè)試的案例時(shí),比較雜亂,遂作此文予以整理,Android單元測(cè)試如何去做當(dāng)是另外的主題,需要參考android.test包中提供的具體類。
文中的android測(cè)試類的包直接創(chuàng)建在了main代碼目錄下,比較好的方式如下Android測(cè)試代碼目錄結(jié)構(gòu)圖:
圖 六