當前位置:首頁 » 安卓系統 » android單元測試框架

android單元測試框架

發布時間: 2022-01-09 12:56:07

1. android ui單元測試框架有哪些

可以參考http://www.open-open.com/lib/view/open1433814526504.html,網路下就知道了。。嘿嘿

2. android中單元測試的幾個測試方法怎麼不按代碼順序執行

增加一個綜合方法不就完了,按順序執行
測試這一個方法就行了唄

3. android studio怎麼進行單元測試

在Android Studio中可以進行單元測試
很多的文章指導你應該在「build.gradle」 文件裡面添加幾行代碼從而允許單元測試,並且告訴你應該在項目依賴中添加Android測試庫。
其實你並不需要按照這種錯誤的方式去做,因為這是完全沒有必要的。
Android Studio本身就支持Android單元測試,你只需要在你的項目中配置一下就可以了。
注意:還有好幾種廣受歡迎的Android單元測試框架,比如Robolectric,它們比我在這里提到的需要更多的配置,我希望在未來可以以這個題目再寫一些指導文章。
創建你的單元測試文件夾
我喜歡把單元測試放在我的主項目裡面,比如「com.mypath.tests.」 ,你可以把測試目錄放到你想要的地方。開始之前,像下面這樣,先創建你的測試文件夾。(譯者註:這一步不是必須的,你也可以把單元測試類創建在與Android Studio默認的ApplicationTest類相同的路徑下面)

接下來,創建一個叫做 「ExampleTest」的類,注意要繼承自InstrumentationTestCase類

然後可以添加一個簡單的測試代碼,我們知道這段代碼肯定會運行失敗
public class ExampleTest extends InstrumentationTestCase {
public void test() throws Exception {
final int expected = 1;
final int reality = 5;
assertEquals(expected, reality);
}
}1234567

注意:所有的測試方法必須以」test」開頭,這樣Android Studio才能自動的找到所有你想要進行單元測試的方法。
為你的項目配置單元測試
現在我們已經有了一個會運行失敗的測試單元,我們必須把它run起來。
首先點擊」Run-> Edit Configurations」

然後點擊「+」從左邊彈出的列表裡,選擇添加一個 Android Tests,然後你可以在右上角給它改名為你想要的名字。

然後就會創建一下像下面這樣的測試項目配置

從下拉菜單中選擇你當前的mole

接下來,選擇」All in Package」選項,然後把你的剛才創建的測試文件夾選中。你也可以選擇「All in Mole」選項,這樣Android Studio會自動的找到你整個Mole中的所有測試單元,你也可以通過另外的選項,指定某一個類甚至是測試方法。
做完這一切之後,看起來應該像下面這樣

我也喜歡選中下面的「Show chooser dialog」,這樣當每次運行的時候,我可以指定如何去運行

現在點擊」Apply」然後關閉,你現在應該可以看到你的測試案例已經作為一個可以運行的項目配置在Android Studio上面的工具欄上了

運行我們的單元測試
我使用Genymotion來完成所有的事情,所以開啟你的Genymotion然後運行test
在assertion這一行添加一個斷點,然後點擊 「run debug mode」,目的是為了證明Android Studio確實執行了我們的單元測試。

當你開始你的測試工程之後,你會看到一個叫做「Running Tests…」的顯示窗口

當你的測試沒有通過,點擊「Logcat」然後查看綜合的輸出結果,看下我們測試失敗的原因

通過控制台,你會發現給出的錯誤理由應該是
「junit.framework.AssertionFailedError: expected:<1> but was:<5>」1

4. android單元測試實用嗎有必要嗎

表糾結了,單元測試也並沒有那麼麻煩,如果時間寬松,想整體測試的時候省點bug就單元測試,如果時間比較緊張,簡單測試一下就行了,當然還要看看是不是公司硬性要求什麼的。

5. android單元測試工具有哪些

這里我們拿「android的ScrollView滾動布局獲取數據基礎方法」這個示例中利用HttpUtils工具類獲得json數據為例,利用單元測試進行測試。
首先,在AndroidManifest.xml清單文件中使用滑鼠點擊的方法添加android.test.InstrumentationTestRunner(如果使用代碼容易出錯),之後再添加Instrumentation的Name和Target package,全部自動完成這一過程。具體方法如圖。

然後在AndroidManifest中使用Alt+/自動添加單元測試包,單元測試准備工作完成,方法如圖。

在第二步中targetPackage指定的包名com.example.layout,意思是在com.example.layout包下所有包下的類都可以進行單元測試,所以我們在該包下建立一個測試類MyTest,並繼承AndroidTestCase,寫一個testjson()方法,用於測試android語句是否能正確輸出json數據,具體代碼如下。

寫好測試代碼之後,進行如圖方式執行測試代碼。如果出現「綠色」,則測試成功,這樣就完成了單元測試,模擬器只需要在旁邊掛著,不用模擬器,而可以進行多個函數的獨立單元測試,不僅節省了時間,還提高了工作效率。
這是鏈接http://jingyan..com/article/c1465413a105b00bfcfc4c18.html

6. 如何進行Android單元測試

如何進行Android單元測試Menifest.xml中加入:<application>中加入:<uses-library android:name="android.test.runner" /><application>外面加入:<uses-permission android:name="android.permission.RUN_INSTRUMENTATION" /><instrumentation android:name="android.test.InstrumentationTestRunner" android:targetPackage="name.feisky.android.test"android:label="Test for my app"/>編寫單元測試代碼:必須繼承自AndroidTestCase類package name.feisky.android.test;import android.test.AndroidTestCase;import junit.framework.Assert;public class MyTest extends AndroidTestCase {private static final String Tag="MyTest";public void testSave() throws Throwable{int i=4+8;Assert.assertEquals(5,i);}public void testSomethingElse() throws Throwable {Assert.assertTrue(1 + 1 == 12);}}執行測試IntelliJ中:eclipse中:右鍵 run as Android JUnit Test命令行工具:adb shell am instrument -w name.feisky.android.test/android.test.InstrumentationTestRunner也可以新建一個測試項目進行測試New > Project > Android > Android Test Project.添加測試用例類添加新類,基類設置為android.test.<HelloAndroid>添加構造函數添加setUp()方法,這個方法在所有的測試之前進行變數和測試環境的初始化。@Override protected void setUp() throws Exception { super.setUp(); mActivity = this.getActivity(); mView = (TextView) mActivity.findViewById(com.example.helloandroid.R.id.textview); resourceString = mActivity.getString(com.example.helloandroid.R.string.hello); }添加testPreconditions()方法,檢查初始化環境,只執行一次public void testPreconditions() { assertNotNull(mView); }添加單元測試public void testText() { assertEquals(resourceString,(String)mView.getText()); }測試Run As... > Android JUnit Test

7. Android Studio的兩種單元測試:Androud單元測試和Junit單元測試有什麼區別

測試環境都是依賴於某一個環境的,junit就是和main函數一樣,沒有什麼環境依賴直接運行,安卓單元測試的話無非也是測試某些函數,測試介面是否正常,那麼就可以用到 mockito這個框架,也就是說可以模擬一些平時不好debug的情況 例如

DbConnect conn = mock(DbConnect);

when(conn.query(anyInt())).thenReturn("{json數據或者其他}");

這樣我們就能夠比較科學的測試我們想要的函數行為是否正常了,貼一個我的博客鏈接,你可以直接點mockito官網 網頁鏈接也可以看看我的blog哦網頁鏈接

8. 單元測試和instrumentation測試的區別

Android單元測試是通過junit框架來測試的。Android中建立JUnit測試環境有以下方法。
集成步驟:

1.在androidManifest.xml文件中添加以下代碼:
<instrumentation android:name="android.test.InstrumentationTestRunner"
android:targetPackage="com.example.junittest" android:label="@string/app_name"
></instrumentation>

2.新建一個測試測試類並繼承AndroidTestCase類,編寫測試方法,在測試方法內使用斷言assert來測試要測試的方法。

3.點擊右面的大綱視圖,選擇要測試的方法,右鍵,run as --->Android JUnit test 。

9. 如何運行Android sdk sample中的單元測試

測試androidsdk 開發單元測試
安卓模擬器或者真機上跑測試用例速度很慢。構建、部署、啟動app,通常需要花費一分鍾或者更久。這不是TDD(測試驅動開發)模式.Robolectric提供一種更好的方式。
可能你一直嘗試在java IDE中使用junit或者testng直接跑測試用例,但是一直報java.lang.RuntimeException: Stub!異常。
這個異常是因為在jdk中沒有android運行環境。而現在Robolectric這款android單元測試工具,模擬了android sdk中的jar包,可以直接在jvm中運行測試用例,這樣就大大節省了時間。一個Robolectric測試用例如下:
// Test class for MyActivity @RunWith(RobolectricTestRunner.class) public class MyActivityTest { @Test public void clickingButton_shouldChangeResultsViewText() throws Exception { Activity activity = Robolectric.buildActivity(MyActivity.class).create().get(); Button pressMeButton = (Button) activity.findViewById(R.id.press_me_button); TextView results = (TextView) activity.findViewById(R.id.results_text_view); pressMeButton.performClick(); String resultsText = results.getText().toString(); assertThat(resultsText, equalTo("Testing Android Rocks!")); } }

在安卓模擬器或者真機上跑測試用例速度很慢。構建、部署、啟動app,通常需要花費一分鍾或者更久。這不是TDD(測試驅動開發)模式.Robolectric提供一種更好的方式。
可能你一直嘗試在java IDE中使用junit或者testng直接跑測試用例,但是一直報java.lang.RuntimeException: Stub!異常。
這個異常是因為在jdk中沒有android運行環境。而現在Robolectric這款android單元測試工具,模擬了android sdk中的jar包,可以直接在jvm中運行測試用例,這樣就大大節省了時間。一個Robolectric測試用例如下:
// Test class for MyActivity
@RunWith(RobolectricTestRunner.class)
public class MyActivityTest {

@Test
public void clickingButton_shouldChangeResultsViewText() throws Exception {
Activity activity = Robolectric.buildActivity(MyActivity.class).create().get();

Button pressMeButton = (Button) activity.findViewById(R.id.press_me_button);
TextView results = (TextView) activity.findViewById(R.id.results_text_view);

pressMeButton.performClick();
String resultsText = results.getText().toString();
assertThat(resultsText, equalTo("Testing Android Rocks!"));
}
}

SDK,Resource和Native Method模擬
Robolectric可以處理控制項展示、資源載入和很多使用native C實現的真機上的其他功能。所以我們可以使用Robolectric來模擬真機上的大部分操作。我們可以很方便地獲取Robolectric的源碼,直接查看它的模擬機制,所以使用Robolectric,我們也可以模擬錯誤條件和一些真實的感測器信號。
脫離模擬器執行測試用例
Robolectric允許我們在項目工程中或者持續集成(CI如hudson、jenkins)中使用jvm來執行測試用例,所以就省掉了打包、安裝的過程,將測試用例的執行時間由分鍾級降到秒級。
不再需要Mock框架
使用一些Mock框架,如Mockito或者Android Mock等,可以模擬出android運行環境,達到和Robolectric相同的效果。這是一個有效的方法,但是使用這種方法寫出的測試用例,很多情況下就是開發代碼的反實現。
Robolectric的測試風格更偏向於黑盒測試,robolectric式的測試用例更加關注與app的表現,而不是android運行環境的實現,所以使用robolectric寫出的測試用例更有效。當然這也是看測試人員的喜好,如果喜歡可以同時使用Robolectric和mock框架。

10. Android 開發人員有必要熟練運用各種單元測試框架嗎

Android軟體測試工具包括:AndroidTestKit,AndroidJUnit4,Appium,calabash-android,Monkey,MonkeyTalk,NativeDriver,Robolectric,RoboSpock,Robotium,UIAutomator,Selendroid。AndroidTestKit是一組Google開源測試工具,用於Android平台,包含EspressoAPI可用於編寫簡潔可靠的AndroidUI測試。AndroidJUnit4是一個讓JUnit4可以直接運行在Android設備上的開源命令行工具。Appium是一個開源、跨平台的自動化測試工具,用於測試原生和輕量移動應用,支持iOS,Android和FirefoxOS平台。Appium驅動蘋果的UIAutomation庫和Android的UiAutomator框架,使用Selenium的WebDriverJSON協議。Appinm的iOS支持是基於DanCuellar's的iOSAuto.Appium同時綁定了Selendroid用於老的Android平台測試。

熱點內容
SQL寫序列 發布:2024-09-20 06:02:29 瀏覽:964
裝緩存下載 發布:2024-09-20 05:42:36 瀏覽:72
gon引擎自動回收腳本 發布:2024-09-20 05:39:39 瀏覽:246
好醫生連鎖店密碼多少 發布:2024-09-20 05:09:38 瀏覽:15
魔獸腳本代理 發布:2024-09-20 05:09:35 瀏覽:99
python登陸網頁 發布:2024-09-20 05:08:39 瀏覽:758
安卓qq飛車如何轉蘋果 發布:2024-09-20 04:54:30 瀏覽:178
存儲過程中in什麼意思 發布:2024-09-20 04:24:20 瀏覽:315
php顯示數據 發布:2024-09-20 03:48:38 瀏覽:501
源碼安裝軟體 發布:2024-09-20 03:44:31 瀏覽:354