亚洲好骚综合-亚洲黄色录像-亚洲黄色网址-亚洲黄色网址大全-99久久99久久-99久久99久久精品国产

您的位置:軟件測試 > 開源軟件測試 > 開源單元測試工具 > junit
Android 下junit 單元測試
作者:網絡轉載 發布時間:[ 2014/1/14 14:47:00 ] 推薦標簽:單元測試 junit Android

  如果假設com.android.foo是你的測試代碼的包的根。當執行以下命令時,會執行所有的TestCase的所有Test。測試的對象是在Target Package中指定的包中的代碼:

  adb shell am instrument -w com.android.foo/android.test.InstrumentationTestRunner

  如果你想運行一個TestSuite,首先繼承android.jar的junit.framework.TestSuite類,實現一個 TestSuite(比如叫com.android.foo.MyTestSuite),然后執行以下命令執行此TestSuite

  adb shell am instrument -e class com.android.foo.MyTestSuite -w com.android.foo/android.test.InstrumentationTestRunner

  其中的-e表示額外的參數,語法為-e [arg1] [value1] [arg2] [value2] …這里用到了class參數。

  如果僅僅想運行一個TestCase(比如叫com.android.foo.MyTestCase),則用以下命令:

  adb shell am instrument -e class com.android.foo.MyTestCase -w com.android.foo/android.test.InstrumentationTestRunner

  如果僅僅想運行一個Test(比如是上面MyTestCase的testFoo方法),很類似的,這樣寫:

  adb shell am instrument -e class com.android.foo.MyTestCase#testFoo -w com.android.foo/android.test.InstrumentationTestRunner

  然后,所有的測試結果會輸出到控制臺,并會做一系列統計,如標記為E的是Error,標記為F的是Failure,Success的測試則會標記為一 個點。這和JUnit的語義一致。如果希望斷點調試你的測試,只需要直接在代碼上加上斷點,然后將運行命令參數的-e后邊附加上debug true后運行即可。更加詳細的內容可以看InstrumentationTestRunner的Javadoc。我希望Android能盡快有正式的文檔來介紹這個內容。

  如何在Android的單元測試中做標記?

  在 android.test.annotation包里定義了幾個annotation,包括 @LargeTest,@MediumTest,@SmallTest,@Smoke,和@Suppress。你可以根據自己的需要用這些 annotation來對自己的測試分類。在執行單元測試命令時,可以在-e參數后設置“size large”/ “size medium”/ “size small”來執行具有相應標記的測試。特別的@Supperss可以取消被標記的Test的執行。

  完整的操作過程

  總結以上所有的內容,編寫并運行完整的測試需要以下的步驟:

  以上步驟中,在 Android自帶的例子中,我發現它有兩個manifest.xml。也是說在步驟3中源代碼和測試代碼分別生成了兩個不同的包。然后步驟4利用 adb install命令安裝到了虛擬機上。由于我沒有找到Eclipse ADT有辦法可以為一個只有Instrumentation,沒有Activity的Application打包并安裝,于是采用了略微不同的辦法完成了這個工作。下文中將一一詳細介紹整個過程。

wordend 相關閱讀:

    MOTODEV初體驗,高效Android開發工具
    詳解如何實現一個基本的Android用戶界面
    Android應用開發實戰:GPS與加速度傳感器

  1、編寫程序

  我新建了一個項目TestApp,參數為:

  Package Name: com.android.testapp

  Activity Name: MainActivity

  Application Name: TestApp

  以下是MainActivity的源代碼:

  packagecom.android.testapp;

  importandroid.app.Activity;

  importandroid.os.Bundle;

  publicclassMainActivityextendsActivity {

  

  @Override

  publicvoidonCreate(Bundle savedInstanceState) {

  super.onCreate(savedInstanceState);

  setContentView(R.layout.main);

  }

  publicintsum(inta,intb) {

  returna + b;

  }

  publicintsubstract(inta,intb) {

  returnb - a;

  }

  }

  其中,我故意將減法的a – b寫成了b – a。

上一頁12345下一頁
軟件測試工具 | 聯系我們 | 投訴建議 | 誠聘英才 | 申請使用列表 | 網站地圖
滬ICP備07036474 2003-2017 版權所有 上海澤眾軟件科技有限公司 Shanghai ZeZhong Software Co.,Ltd
主站蜘蛛池模板: 一级片免费的 | 天天做天天看夜夜爽毛片 | 亚洲不卡免费视频 | 中文一区二区在线观看 | japan高清日本乱xxxx | 国产99r视频精品免费观看 | 国产成a人片在线观看视频99 | 男女视频免费网站 | 日本一区二区不卡久久入口 | 手机在线免费观看毛片 | 欧美日韩中文字幕一区二区高清 | 日本二区在线观看 | 天天舔天天插 | 国产韩国精品一区二区三区久久 | 在线免费看黄色 | 久久久久久久网站 | 欧美1区 | 好吊日在线视频 | 亚洲高清成人欧美动作片 | 日韩色视频一区二区三区亚洲 | 涩爱tv | 亚洲精品线在线观看 | 特黄网站| 午夜剧场伦理 | 欧美一区二区三区不卡免费观看 | 久久精品国产屋 | 午夜视频免费在线 | 欧美日韩 国产区 在线观看 | 国产看片一区二区三区 | 性freexxxxhd欧美在线 | 日韩精品特黄毛片免费看 | 在线观看麻豆精品国产不卡 | 亚洲作爱视频 | 日韩中文字幕精品一区在线 | 亚洲福利精品一区二区三区 | 热99re久久精品香蕉 | 欧美精品人爱c欧美精品 | 久久久久国产精品免费免费 | 91在线 | 欧美 | 你懂的在线视频播放 | 成人久久18免费网站入口 |