成人怡红院-成人怡红院视频在线观看-成人影视大全-成人影院203nnxyz-美女毛片在线看-美女免费黄

站長資訊網(wǎng)
最全最豐富的資訊網(wǎng)站

Android JUnit 入門指南

      自動(dòng)化單元測試可以做許多的事,并幫你節(jié)省時(shí)間。它也可以被用作快速檢驗(yàn)新建工程或進(jìn)行冒煙測試。始終,單元測試是作為一種有效的、系統(tǒng)的檢驗(yàn)應(yīng)用程序各功能執(zhí)行的方式。Android SDK支持JUnit的自動(dòng)化單元測試。本教程假設(shè)你已熟悉Android和JUnit在Eclipse的使用。

 

      創(chuàng)建一個(gè)Android的JUnit項(xiàng)目

      如果你的Eclipse中已經(jīng)有Android項(xiàng)目,就不用再創(chuàng)建了。如果你的Eclipse中沒有Android項(xiàng)目,你可以創(chuàng)建一個(gè)JUnit項(xiàng)目,在創(chuàng)建JUnit項(xiàng)目的同時(shí)也會為你創(chuàng)建Android項(xiàng)目。

      對現(xiàn)有的Android項(xiàng)目,在Eclipse中右鍵單擊,選擇“Android Tools”,然后“New Test Project…”,如下圖:

 

Android JUnit 入門指南

 

      如果是新建Android項(xiàng)目,在“New Android Project”對話框中,按“Next”按鈕,如下圖:

 

Android JUnit 入門指南

      無論按照上面哪種方式,你都會在這個(gè)時(shí)候創(chuàng)建Android項(xiàng)目的新測試項(xiàng)目。創(chuàng)建測試項(xiàng)目的對話框,如下圖所示,通常會自動(dòng)填寫上一些標(biāo)準(zhǔn)的命名約定等細(xì)節(jié)。如果沒有,請自己填寫,并創(chuàng)造該項(xiàng)目。

 

Android JUnit 入門指南

      在Android中創(chuàng)建一個(gè)JUnit測試用例


      Android應(yīng)用程序通常是由一些Activity類組成的。事實(shí)上,每一個(gè)ACtivity都可以是一個(gè)獨(dú)立實(shí)體,進(jìn)行測試。Android SDK中包含了幾個(gè)類來測試ACtivity類。現(xiàn)在我們將使用一個(gè)。

      右鍵單擊你的測試項(xiàng)目。選擇“New”,然后“JUnit Test Case”:

 

Android JUnit 入門指南

 

      在新建JUnit測試用例對話框上填寫,使用超類是android.test.ActivityInstrumentTestCase2,其中T是我們要測試的Activity,如下圖:

 

Android JUnit 入門指南

      點(diǎn)擊“完成”按鈕,這個(gè)類就創(chuàng)建成功了。注意:由向?qū)?chuàng)建的默認(rèn)構(gòu)造函數(shù)是不正確的。我們需要修改它,讓它不帶任何參數(shù),調(diào)用不同的super()的方法,代碼如下:

 

1 public ScreenValidation() {    2    super("com.mamlambo.testingproject.TestingProjectActivity",    3      TestingProjectActivity.class);   4 }
      setUp()方法中,應(yīng)配置運(yùn)行這個(gè)測試用例所需的所有東西。Activity實(shí)例隨時(shí)可以被getActivity()方法調(diào)用。例如:如果我們想在測試中顯示一個(gè)TextView在Activity上,我們可以實(shí)現(xiàn)setUp()方法,如下:
 
1 TextView helloText;    2 protected void setUp() throws Exception {    3   super.setUp();    4   helloText = (TextView) getActivity().    5      findViewById(R.id.hello_textview);    6 } 
 
      在Android中添加單元測試
      此時(shí)你可以創(chuàng)建各種測試。你可以獲取到Activity布局上所有控件,以及在應(yīng)用程序的任何代碼。由于使用Activity測試用例,我們可能感興趣于用戶界面,布局,及功能。讓我們看看TextView控件顯示在屏幕上。

 
01 public void testHelloTextVisibility() {    02    View container = getActivity().findViewById(R.id.container_layout);    03    int boundaryWidth = container.getWidth();    04    int boundaryHeight = container.getHeight();    05     06    int[] location = new int[2];    07    container.getLocationOnScreen(location);    08     09    int[] helloTextLocation = new int[2];    10    helloText.getLocationOnScreen(helloTextLocation);    11     12    Rect textRect = new Rect();    13    helloText.getDrawingRect(textRect);    14     15    boolean widerThanBoundary = (textRect.width() > boundaryWidth);    16    boolean tallerThanBoundary = (textRect.height() > boundaryHeight);    17    boolean extendsOffRight = location[0] + boundaryWidth    18      > helloTextLocation[0] + textRect.width();    19    assertTrue("Text wider than boundary", widerThanBoundary);    20    assertTrue("Text taller than boundary", tallerThanBoundary);    21    assertTrue("Text goes off right side", extendsOffRight);    22     23    // ... and so on    24  } 

 

      所有的測試方法必須用“test”做前綴。上面,我們已經(jīng)創(chuàng)建了一個(gè)測試名為“HelloTextVisibility”的方法。如果測試通過或失敗,assertFalse()都會被調(diào)用。(assertTrue()方法只有是true時(shí)調(diào)用。)

 

      運(yùn)行JUnit測試用例

      運(yùn)行測試和測試用例,點(diǎn)擊Eclipse的Debug,選擇Android JUnit測試。如果你喜歡,你還可以創(chuàng)建一個(gè)Android JUnit測試配置,自定義這些設(shè)置。
      如下圖,我們的小應(yīng)用程序在橫屏模式下,“Hello Text Visibility”測試通過:

 

Android JUnit 入門指南

 

      但在豎屏模式下,未能通過測試:

 

 Android JUnit 入門指南

      很顯然,我們的布局設(shè)計(jì)在豎屏模式下顯示不正確。(注:這可能是設(shè)置的寬度像素超過了手機(jī)的,而沒有使用合適的單位,如DP或是match_parent。)

 

      Android應(yīng)用程序的質(zhì)量在于單元測試

 

      創(chuàng)建單元測試時(shí),必須小心謹(jǐn)慎。如果測試用例不正確,測試的東西通過了,也沒有價(jià)值。這是非常糟糕的,因?yàn)樗赡苎谏w了一些問題。所以測試用例與代碼本身一樣重要。測試測試用例的主要方式是通過做代碼審查,并確保它們確實(shí)在測試。

      當(dāng)然,測試Android框架的功能對于你的app來說,沒有起到特別大的作用。比如,測試設(shè)置文本字段的值,然后讀取它,看它是否相同。測試常規(guī)的TextView,并不是特別有意義的(除非你的SDK在一個(gè)新的設(shè)備上使用)。然而,如果是測試你自己實(shí)現(xiàn)的TextView,那就有必要了。

      這并不是說任何代碼框架都是那樣的完美無缺,但測試的事情是值得花許多心思的去寫測試開始的。如果失敗了,比起的你的應(yīng)用程序,你將有更大的問題。還有是對SDK之間的細(xì)微差別的測試,在上面的例子中,我們沒有這么做,是因?yàn)槲覀兪褂昧苏_的SDK。

因此,如果你是自動(dòng)化單元測試的新手,我們建議你做一些這方面的課題研究。一個(gè)不錯(cuò)的地方是JUnit.org。

 

      結(jié)論


      在本教程中,你已經(jīng)學(xué)會如何快速添加一個(gè)新的測試項(xiàng)目,并在Eclipse的Android項(xiàng)目中使用JUnit對你的app執(zhí)行自動(dòng)化測試。單元測試可以為邏輯測試,功能測試和用戶界面測試等,不再是專門手動(dòng)測試移動(dòng)應(yīng)用。然而,使用一個(gè)包含自動(dòng)化單元測試的套件,有幾大好處:它可以節(jié)省時(shí)間,金錢和資源,以及提供一套可靠的,重復(fù)性的測試,并且可以運(yùn)行在許多不同的設(shè)備配置中。

 

贊(0)
分享到: 更多 (0)
?
網(wǎng)站地圖   滬ICP備18035694號-2    滬公網(wǎng)安備31011702889846號
国产69精品久久久久99尤物| AAAAA级少妇高潮大片免费看| 好了AV四色综合无码久久| 国产美女视频国产视视频| 国精产品一线二线三线| 精品人妻少妇一区二区三区在线 | 麻豆精品传媒一二三区艾秋| 老头扒开粉嫩的小缝亲吻网站| 内射人妻无码色AV综合网| 人妻天天爽夜夜爽一区二区 | 免费无码又爽又高潮视频| 国内精品久久人妻无码| 久爱无码精品免费视频在线观看| 乱人伦精品视频在线观看| 欧美体内SHE精视频| 熟妇五十路六十路息与子| 亚洲AV无码一区二区三区性色 | 久久午夜夜伦鲁鲁片无码免费 | 日本三线和韩国三线的市场定位| 天天狠天天透天干天天怕∴| 亚洲国产精品成人久久| 中文字幕不卡乱偷在线观看| 草莓视频在线播放视频| 99久久无码一区人妻A黑| 丰满大屁股熟女偷拍内射| 国产揄拍国产精品| 美女裸露双奶头光屁股无遮挡直播| 漂亮人妻被强玩波多野结衣| 无码乱人伦一区二区亚洲一| 手机看片AV永久免费无| 亚洲AV高清在线一区二区三区| 玩弄JaPan白嫩少妇HD小说| 亚洲丰满熟妇乱XXXXX网站| 性欧美老妇人XXⅩ000| 日本VS亚洲VS韩国一区三区| 午夜亚洲国产理论片中文飘花| 野花香日本大全免费观看| 北条麻妃国产九九九精品视频 | 国产综合精品一区二区三区 | 无码人妻精品一区二区在线视频| 野兽的夜晚第四季忘不掉的前任| 成年性生交大片免费看| 精产国品一二三区别9977| 欧美老妇BBBWWBBBWW| 午夜香吻高清观看视频在线| 中文字幕无码精品三级在线电影| 各种少妇正面着BBW撒尿视频| 大杳蕉在线影院在线播放| 好大好深好猛好爽视频免费| 欧美 丝袜 自拍 制服 另类| 精品久久久久久中文字幕人妻最新 | 亚洲成人Av在线| japanese日本护士18| 果冻传媒免费观看4399飘雪| 秋霞无码AⅤ一区二区三区| 亚洲AV无码乱码在线观看性色扶| AV无码精品一区二区三区宅噜噜| 国产自偷自偷免费一区| 欧美最猛黑人XXXⅩ猛男视频| 亚洲GV天堂无码男同在线观看 | 僧侣と交わる色欲の夜に| 亚洲中文字幕日产乱码小说| 妇女强高潮18ⅩXXX| 久久久精品人妻一区亚美研究所 | 亚洲性啪啪无码AV天堂| 国产AV无码专区国产乱码| 国产精品视频免费一区二区| 男人进入女人里面想动还是不想动| 欧美伊人色综合久久天天| 亚洲AV无码专区色爱天堂老鸭窝| 暴力调教一区二区三区| 久久久久精品国产亚洲AV蜜桃| 免费午夜无码18禁无码影视| 亚州AV无码人妻一区二区三区| 在线观看特色大片免费视频 | 国产精品JIZZ在线观看无码 | 免费无码AV污污污在线观看| 久久本道综合久久伊人| 久久99精品久久久大学生| 男男19禁啪啪无遮挡免费| 国内精品伊人久久久久网站| 精品久久久无码人妻字幂| 一本一道波多野结衣AV黑人| 亚洲 校园 欧美 国产 另类| ZOMBIE视频SUPREME| 久久人妻少妇嫩草AV蜜桃| 无码中文字幕日韩专区 | 高一数学网课免费-2| 欧美 亚洲 国产 另类| 亚洲色欲色欲大片WWW无码| 国产精品嫩草影院一二三区入口| 人人爽人人爽人人片A∨不卡| 在线观看AV网站永久免费观看| 黑人巨大VIDEOS极度另类| 玩稚嫩的小屁股眼AV| 菠萝蜜国际通道一区麻豆| 免费A级毛片无码樱桃视频| 亚洲欧美在线制服丝袜国产| 国产乱码1卡二卡3卡四卡| 色噜噜精品一区二区三区| SEERX性欧美老妇| 蜜臀AV性久久久久蜜臀AⅤ| 亚洲无码视频一区二区| 国模和精品嫩模私拍视频| 我趁老师喝醉后玩弄她的身体| 暴行JAPANESE人妻| 欧美三级一区二区| 1000部夫妻午夜免费| 久久综合狠狠综合久久| 亚洲精品TY久久久久久久久久| 最新国产成人无码久久| 久久WWW免费人成_看片中文| 亚洲AV无码成人专区| 国产乱人伦中文无无码视频试看 | 成人女人爽到高潮的Av在线| 欧美熟妇激情一区二区三区| 69堂人成无码免费视频果冻传媒| 狼人视频国产在线视频WWW色| 亚洲性色AV私人影院无码| 精品国产一区二区三区久久| 亚洲VA国产日韩欧美精品| 国产永久AV福利在线观看| 午夜免费无码福利视频| 国产精品无码免费专区午夜 | 饥渴少妇高清VIDEOS| 亚洲V欧美V日韩V国产V| 果冻传媒亚洲区二期| 亚洲AV一本岛在线播放| 国内精品久久久久影院日本 | JAPANESE国产中文在线观| 欧美三级一区二区| 八区精品色欲人妻综合网| 琪琪午夜伦伦电影理论片| а天堂中文在线官网| 日本适合十八岁以上的护肤品一| 差差漫画网页登录页面弹窗| 乳头羞涩NP公主| 国产成人无码精品一区在线观看| 麻豆蜜桃AV蜜臀AV色欲AV| 真人视频直播APP免费观看| 米奇7777狠狠狠狠视频影院| 97人人超碰国产精品最新O| 欧美猛少妇色XXXXX猛交| А天堂最新版中文网| 日韩人妻无码AⅤ中文字幕| 国产SUV精二区九色| 亚洲AⅤ永久无码毛片牛牛影视 | 中文字幕丝袜人妻制服丝袜在线| 男人桶女人18禁止网站| JIJZZIZZ老师出水喷水多| 色婷婷综合久久久久中文| 国产成人无码AV在线播放不卡| 午夜精品久久久久久久久| 狠狠噜天天噜日日噜视频麻豆| 亚洲中文无码人A∨在线导航 | 最新无码国产在线视频2021| 欧美综合自拍亚洲图久青草| 抖抈APP免费下载国际版| 无码少妇一区二区浪潮av| 好爽好大再深点高H免费观看| 亚洲熟妇成人精品一区| 免费无码专区毛片高潮喷水| 把腿张开我要CAO死你在线观看| 色哟哟最新在线观看入口| 国产拍揄自揄精品视频| 亚洲一区二区女搞男| 欧美506070老妇乱子伦| 粗大黑人巨茎大战欧美成人| 无码无套少妇毛多18PX| 精品无人区麻豆乱码1区2 | 欧洲FREEXXXX性少妇播放| 丰满少妇BBWBBW| 亚洲爆乳AAA无码专区| 里番本子库绅士ACG全彩无码| 八戒成年私人影院| 亚洲AⅤ熟女高潮30P| 老熟女与小伙偷欢视频| 被老外做的下身都肿了| 性生生活大片又黄又| 久久中文字幕人妻丝袜| 成年免费视频黄网站ZXGK| 亚洲AV成人片色在线观看www| 久久亚洲AV成人无码一区二区| А√最新版在线天堂| 性国产VIDEOFREE高清| 美女把尿口扒开让男人桶爽| 大香煮伊区一二三四区2021| 亚洲成A人片在线观看无遮挡| 男女狂进狂出动态图| 国产成人亚洲精品无码最新| 亚洲无人区一码二码三码区别| 人妻激情偷乱一区二区三区AV | 国产精品无码免费播放| 在线播放无码高潮的视频| 少妇高潮流白浆在线观看| 久久成人国产精品免费软件| 波多野结衣好大好紧好爽| 亚洲另类激情综合偷自拍图片| 人妻系列无码专区无码专区| 狠狠久久精品中文字幕无码|