在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 教程/ Android/ 第一個測試項目 HelloWorldTest
monkeyrunner 簡介
Android 測試教程(14):ActivityInstrumentationTestCase2 示例
ApplicationTestCase 示例
Android 測試教程(13):TestCase 示例
ActivityInstrumentationTestCase2 示例
測試 Activity
測試項目
Android 測試教程(12):ServiceTestCase 示例
測試相關(guān) API
Monkey 命令行工具
第一個測試項目 HelloWorldTest
測試 Content Provider
Android 測試教程(11):ActivityUnitTestCase 示例
測試基礎(chǔ)
AndroidTestCase 示例
測試 Service

第一個測試項目 HelloWorldTest

本例介紹創(chuàng)建一個測試項目的一般步驟和編寫測試用例的基本方法。

為簡單起見,創(chuàng)建一個 HelloWorld 應(yīng)用,帶有一個 Greeting 類,其定義如下:

    public class Greeting {
     private String name;

     public Greeting(String name){
     this.name=name;
     }

     public String getGreetings(){
     return "Hello," +name;
     }

    }

測試項目打算來測試這個 Greeting 類的 getGreetings 的方法,比如說,創(chuàng)建 Greeting(“World”) ,預(yù)期的 getGreetings 的值應(yīng)為”Hello,World”。我們可以使用 JUnit 框架來編寫一個測試用例。

這里我們在創(chuàng)建 HelloWorld 的項目的同時創(chuàng)建一個測試項目,參見 Android 測試教程(3):測試項目

http://wiki.jikexueyuan.com/project/android-test-course/images/5.1.png" alt="picture5.1" />

可以看到新創(chuàng)建的測試項目名稱為 HelloWorldTest ,并在 src 中創(chuàng)建了 com.pstreets.demo.test 文件夾(和 HelloWorld 應(yīng)用的 com.pstreets.demo 包相對應(yīng))。但 src 還沒有任何代碼。

可以看到 HelloWorldTest 屬性的 Java Build Path-> Projects 中引用的 Project 為 HelloWorld, 表示在 HelloWorldTest 項目中可以引用 HelloWorld 項目中的類。

然后在 HelloWorldTest 的 src 的 com.pstreets.demo.test 中添加一個 AllTests.java,其定義如下:

    public class AllTests extends TestSuite {

     public static Test suite() {
     return new TestSuiteBuilder(AllTests.class)
     .includeAllPackagesUnderHere()
     .build();
     }
    }

使用 TestSuiteBuilder 指明所有該包和其子包中定義的 TestCase 都為最終 TestSuite 的一部分(需要被運行的測試)。

AllTests.java 一般可以不用修改的應(yīng)用到大部分的測試項目中,如果有特殊需要,可以使用 android.test.suitebuilder 的類定義那些 Testcase 需要包含到最終的測試包(Test Suite)中.

定義了 AllTests.java ,這個測試項目就基本完整了,也可以運行了,只是還沒有定義任何測試用例(Test case) 。

這里定義一個 GreetingTest ,用于測試 Greeting 類:

    public class GreetingTest extends TestCase {

     Greeting greeting;

     @Override
     public void setUp(){
     greeting=new Greeting("World");

     }

     @Override
     public void tearDown(){

     }

     public void testGetGreeting() {
     assertTrue(greeting.getGreetings()
     .compareToIgnoreCase("Hello,World")==0);
     }

    }

其實對于與這個例子 setUp 和 tearDown 不是必須的,如果多個 TestCase 使用同一組測試數(shù)據(jù),可以在 setUp 中創(chuàng)建這些測試數(shù)據(jù),JUnit 中運行每個 TestCase 前會運行 setUp ,運行 TestCase 后會執(zhí)行 tearDown 。

JUnit 把以 test 開頭的方法作為一個實例,也可以使用 annotation @Test 表示一個方法為測試方法。

GreetingTest 由 TestCase 派生,因為這里測試是一個普通 Java 類(和 Android 平臺無關(guān)),也可以使用 AndroidTestCase 作為基類。

testGetGreeting 使用 assertTrue 來檢測測試結(jié)果,預(yù)期的 getGreetings()的值為”Hello,World” ,如果為 true ,表示測試通過。

以 Android JUint Test 的方式運行 HelloWorldTest

http://wiki.jikexueyuan.com/project/android-test-course/images/5.2.jpg" alt="picture5.2" />

運行 HelloWorldTest 時,Android 測試環(huán)境會自動啟動 HelloWorld ,并在 JUint 窗口顯示最終測試結(jié)果。

http://wiki.jikexueyuan.com/project/android-test-course/images/5.3.jpg" alt="picture5.3" />

在開發(fā)應(yīng)用過程中,可以一邊編寫應(yīng)用,一邊編寫測試用例。