亚洲最大看欧美片,亚洲图揄拍自拍另类图片,欧美精品v国产精品v呦,日本在线精品视频免费

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

    Android JUnit 入門指南

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

     

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

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

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

     

    Android JUnit 入門指南

     

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

     

    Android JUnit 入門指南

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

     

    Android JUnit 入門指南

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


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

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

     

    Android JUnit 入門指南

     

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

     

    Android JUnit 入門指南

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

     

    1 public ScreenValidation() {    2    super("com.mamlambo.testingproject.TestingProjectActivity",    3      TestingProjectActivity.class);   4 }
          setUp()方法中,應(yīng)配置運行這個測試用例所需的所有東西。Activity實例隨時可以被getActivity()方法調(diào)用。例如:如果我們想在測試中顯示一個TextView在Activity上,我們可以實現(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中添加單元測試
          此時你可以創(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)建了一個測試名為“HelloTextVisibility”的方法。如果測試通過或失敗,assertFalse()都會被調(diào)用。(assertTrue()方法只有是true時調(diào)用。)

     

          運行JUnit測試用例

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

     

    Android JUnit 入門指南

     

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

     

     Android JUnit 入門指南

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

     

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

     

          創(chuàng)建單元測試時,必須小心謹慎。如果測試用例不正確,測試的東西通過了,也沒有價值。這是非常糟糕的,因為它可能掩蓋了一些問題。所以測試用例與代碼本身一樣重要。測試測試用例的主要方式是通過做代碼審查,并確保它們確實在測試。

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

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

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

     

          結(jié)論


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

     

    贊(0)
    分享到: 更多 (0)
    網(wǎng)站地圖   滬ICP備18035694號-2    滬公網(wǎng)安備31011702889846號