www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當(dāng)前位置:首頁 > 嵌入式 > 嵌入式軟件
[導(dǎo)讀]自動(dòng)化單元測試可以做許多的事,并幫你節(jié)省時(shí)間。它也可以被用作快速檢驗(yàn)新建工程或進(jìn)行冒煙測試。始終,單元測試是作為一種有效的、系統(tǒng)的檢驗(yàn)應(yīng)用程序各功能執(zhí)行的方式。

自動(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í)也會(huì)為你創(chuàng)建Android項(xiàng)目。

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

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

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

在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”:

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

點(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()都會(huì)被調(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”測試通過:

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

很顯然,我們的布局設(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é)會(huì)如何快速添加一個(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è)備配置中。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

柏林2025年9月9日 /美通社/ -- 2025年9月5日,納斯達(dá)克上市公司優(yōu)克聯(lián)集團(tuán)(NASDAQ: UCL)旗下全球互聯(lián)品牌GlocalMe,正式亮相柏林國際消費(fèi)電子展(IFA 2025),重磅推出融合企...

關(guān)鍵字: LOCAL LM BSP 移動(dòng)網(wǎng)絡(luò)

深圳2025年9月9日 /美通社/ -- PART 01活動(dòng)背景 當(dāng)技術(shù)的鋒芒刺穿行業(yè)壁壘,萬物互聯(lián)的生態(tài)正重塑產(chǎn)業(yè)疆域。2025年,物聯(lián)網(wǎng)產(chǎn)業(yè)邁入?"破界創(chuàng)造"與"共生進(jìn)化"?的裂變時(shí)代——AI大模型消融感知邊界,...

關(guān)鍵字: BSP 模型 微信 AIOT

"出海無界 商機(jī)無限"助力企業(yè)構(gòu)建全球競爭力 深圳2025年9月9日 /美通社/ -- 2025年8月28日, 由領(lǐng)先商業(yè)管理媒體世界經(jīng)理人攜手環(huán)球資源聯(lián)合主辦、深圳?前海出海e站通協(xié)辦的...

關(guān)鍵字: 解碼 供應(yīng)鏈 AI BSP

柏林2025年9月9日 /美通社/ -- 柏林當(dāng)?shù)貢r(shí)間9月6日,在2025德國柏林國際電子消費(fèi)品展覽會(huì)(International Funkausstellung...

關(guān)鍵字: 掃地機(jī)器人 耳機(jī) PEN BSP

武漢2025年9月9日 /美通社/ -- 7月24日,2025慧聰跨業(yè)品牌巡展——湖北?武漢站在武漢中南花園酒店隆重舉辦!本次巡展由慧聰安防網(wǎng)、慧聰物聯(lián)網(wǎng)、慧聰音響燈光網(wǎng)、慧聰LED屏網(wǎng)、慧聰教育網(wǎng)聯(lián)合主辦,吸引了安防、...

關(guān)鍵字: AI 希捷 BSP 平板

上海2025年9月9日 /美通社/ -- 9月8日,移遠(yuǎn)通信宣布,其自研藍(lán)牙協(xié)議棧DynaBlue率先通過藍(lán)牙技術(shù)聯(lián)盟(SIG)BQB 6.1標(biāo)準(zhǔn)認(rèn)證。作為移遠(yuǎn)深耕短距離通信...

關(guān)鍵字: 藍(lán)牙協(xié)議棧 移遠(yuǎn)通信 COM BSP

上海2025年9月9日 /美通社/ -- 為全面落實(shí)黨中央、國務(wù)院和上海市委、市政府關(guān)于加快發(fā)展人力資源服務(wù)業(yè)的決策部署,更好發(fā)揮人力資源服務(wù)業(yè)賦能百業(yè)作用,8月29日,以"AI智領(lǐng) HR智鏈 靜候你來&quo...

關(guān)鍵字: 智能體 AI BSP 人工智能

北京2025年9月8日 /美通社/ -- 近日,易生支付與一汽出行達(dá)成合作,為其自主研發(fā)的"旗馭車管"車輛運(yùn)營管理平臺(tái)提供全流程支付通道及技術(shù)支持。此次合作不僅提升了平臺(tái)對百余家企業(yè)客戶的運(yùn)營管理效率...

關(guān)鍵字: 一汽 智能化 BSP SAAS

深圳2025年9月8日 /美通社/ -- 晶泰科技(2228.HK)今日宣布,由其助力智擎生技制藥(PharmaEngine, Inc.)發(fā)現(xiàn)的新一代PRMT5抑制劑PEP0...

關(guān)鍵字: 泰科 AI MT BSP

上海2025年9月5日 /美通社/ -- 由上海市經(jīng)濟(jì)和信息化委員會(huì)、上海市發(fā)展和改革委員會(huì)、上海市商務(wù)委員會(huì)、上海市教育委員會(huì)、上海市科學(xué)技術(shù)委員會(huì)指導(dǎo),東浩蘭生(集團(tuán))有限公司主辦,東浩蘭生會(huì)展集團(tuán)上海工業(yè)商務(wù)展覽有...

關(guān)鍵字: 電子 BSP 芯片 自動(dòng)駕駛
關(guān)閉