![](/img/trans.png)
[英]How to write test cases for Project,Library project in Android studio
[英]How to test an Android Library Project
我正在編寫一個基於 Android Bitmap 類(稱為 AndroindLib)的 Android 庫項目,它只包含實用程序類(無活動)。 我嘗試使用 Android JUnit 對其進行測試,但它一直抱怨找不到 AnroidLib.apk
單元測試 Android 庫項目的正確方法是什么?
引用文檔:
“在庫項目中設置代碼和資源測試有兩種推薦的方法:
您可以設置一個測試項目來檢測依賴於庫項目的應用程序項目。 然后,您可以將測試添加到項目中以獲取特定於庫的功能。
您可以設置依賴於庫的標准應用程序項目並將檢測放在該項目中。 這使您可以創建一個包含測試/儀器和要測試的代碼的自包含項目。”
在您的測試項目中,只需更改包名稱,使其與您的庫的包相同。 例如,您有一個庫,其包為"com.example.lib"
。 創建一個針對您的庫的測試項目。 在清單文件中,您將看到package="com.example.lib.test"
和targetPackage="com.example.lib"
。 只需將包從“com.example.lib.test”更改為“com.example.lib”( targetPackage
原樣)。
此外,請確保該庫不是在 Java 構建路徑中引用到您的測試項目,而是作為通常的 Android 庫:在 Eclipse 中,它必須在Project->Properties->Android
選項卡中顯示為庫,但不在Project->Properties->Java Build Path
選項卡。
然后運行你的測試。
http://www.paulbutcher.com/2010/09/android-library-project-with-tests-step-by-step/幫助描述在CommonsWare的回答中實現第二個建議所需的過程
根據文檔:
測試庫模塊與測試應用程序相同。 主要區別在於庫及其依賴項會自動包含為測試 APK 的依賴項。 這意味着測試 APK 不僅包括它自己的代碼,還包括庫的 AAR 及其所有依賴項。 由於沒有單獨的“被測應用”,androidTest 任務僅安裝(和卸載)測試 APK。 合並多個清單文件時,Gradle 遵循默認優先級順序,並將庫的清單合並到測試 APK 的主清單中。
注意:此解決方案基於使用 Eclipse Indigo (3.8.2),雖然基本原理是相同的,但對於另一個 IDE,可能需要稍微不同地實現。
我有類似的問題,我發現執行以下操作總是有效:
(注意:這些說明用於從頭開始構建新的項目組。如果您已經構建了項目組的一部分,那么您可能需要修改您的項目,以便它們以相同的方式連接。 )
您應該最終得到三個與此類似的項目(Android 庫、Android 測試應用程序、Android 庫測試器):
你應該最終得到一個類來測試你的 Android 庫,它看起來類似於:
package danny.remington.remington_android_tools_test_app.test;
import android.test.ActivityInstrumentationTestCase2;
import danny.remington.remington_android_tools_test_app.TestActivity;
/**
*
*/
public class TestActivityTest extends
ActivityInstrumentationTestCase2<TestActivity> {
public TestActivityTest() {
super(TestActivity.class);
}
}
然后,您可以添加所需的任何測試。 您不需要進一步引用 Android 測試應用程序(在此示例中為“RemingtonAndroidToolsTestApp”)來運行您的測試,除非它們需要訪問 Android 特定組件(例如 Assets 文件夾)。 如果您需要訪問任何 Android 特定組件,您可以通過修改 Android 測試應用程序(在本例中為“RemingtonAndroidToolsTestApp”)然后通過標准 Android Junit API 提供的檢測引用它來實現。 (您可以在此處閱讀更多相關信息:http ://developer.android.com/tools/testing/testing_android.html )
如果您的 ulitiy 類不依賴於任何 android 特定代碼,您可以只使用標准的 JUnit 單元測試。 無需使用 Android 版本。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.