Android测试教程(5):第一个测试项目HelloWorldTest
2012-05-14 08:29
399 查看
本例介绍创建一个测试项目的一般步骤和编写测试用例的基本方法。
为简单起见,创建一个HelloWorld应用,带有一个Greeting类,其定义如下:
测试项目打算来测试这个Greeting 类的getGreetings的方法,比如说,创建Greeting(“World”) ,预期的getGreetings 的值应为”Hello,World”。我们可以使用JUnit框架来编写一个测试用例。
这里我们在创建HelloWorld的项目的同时创建一个测试项目,参见Android测试教程(3):测试项目
可以看到新创建的测试项目名称为HelloWorldTest ,并在src 中创建了com.pstreets.demo.test 文件夹(和HelloWorld 应用的com.pstreets.demo 包相对应)。但src 还没有任何代码。
可以看到HelloWorldTest 属性的Java Build Path-> Projects 中引用的Project为HelloWorld, 表示在HelloWorldTest 项目中可以引用HelloWorld 项目中的类。
然后在HelloWorldTest的src 的com.pstreets.demo.test 中添加一个AllTests.java,其定义如下:
AllTests.java 一般可以不用修改的应用到大部分的测试项目中,如果有特殊需要,可以使用android.test.suitebuilder 的类定义那些Testcase 需要包含到最终的测试包(Test Suite)中.
定义了AllTests.java ,这个测试项目就基本完整了,也可以运行了,只是还没有定义任何测试用例(Test case) 。
这里定义一个GreetingTest ,用于测试Greeting 类:
其实对于与这个例子setUp和tearDown 不是必须的,如果多个TestCase 使用同一组测试数据,可以在setUp 中创建这些测试数据,JUnit 中运行每个TestCase 前会运行setUp ,运行TestCase 后会执行tearDown 。
JUnit 把以test开头的方法作为一个实例,也可以使用annotation @Test 表示一个方法为测试方法。
GreetingTest 由TestCase 派生,因为这里测试是一个普通Java类(和Android 平台无关),也可以使用AndroidTestCase 作为基类。
testGetGreeting 使用assertTrue 来检测测试结果,预期的getGreetings()的值为”Hello,World” ,如果为true ,表示测试通过。
以Android JUint Test 的方式运行HelloWorldTest
运行HelloWorldTest
时,Android测试环境会自动启动HelloWorld ,并在JUint 窗口显示最终测试结果。
在开发应用过程中,可以一边编写应用,一边编写测试用例。
为简单起见,创建一个HelloWorld应用,带有一个Greeting类,其定义如下:
public class Greeting { private String name; public Greeting(String name){ this.name=name; } public String getGreetings(){ return "Hello," +name; } }
测试项目打算来测试这个Greeting 类的getGreetings的方法,比如说,创建Greeting(“World”) ,预期的getGreetings 的值应为”Hello,World”。我们可以使用JUnit框架来编写一个测试用例。
这里我们在创建HelloWorld的项目的同时创建一个测试项目,参见Android测试教程(3):测试项目
可以看到新创建的测试项目名称为HelloWorldTest ,并在src 中创建了com.pstreets.demo.test 文件夹(和HelloWorld 应用的com.pstreets.demo 包相对应)。但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(); } }
AllTests.java 一般可以不用修改的应用到大部分的测试项目中,如果有特殊需要,可以使用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 使用同一组测试数据,可以在setUp 中创建这些测试数据,JUnit 中运行每个TestCase 前会运行setUp ,运行TestCase 后会执行tearDown 。
JUnit 把以test开头的方法作为一个实例,也可以使用annotation @Test 表示一个方法为测试方法。
GreetingTest 由TestCase 派生,因为这里测试是一个普通Java类(和Android 平台无关),也可以使用AndroidTestCase 作为基类。
testGetGreeting 使用assertTrue 来检测测试结果,预期的getGreetings()的值为”Hello,World” ,如果为true ,表示测试通过。
以Android JUint Test 的方式运行HelloWorldTest
运行HelloWorldTest
时,Android测试环境会自动启动HelloWorld ,并在JUint 窗口显示最终测试结果。
在开发应用过程中,可以一边编写应用,一边编写测试用例。
相关文章推荐
- Android测试教程(5):第一个测试项目HelloWorldTest
- android--Hello,World教程
- Java基础教程1:环境配置及第一个HelloWorld.java
- Android测试教程(3):测试项目
- mono for android 2 (通过Hello,World ,熟悉项目)
- 初学Android,"Hello World" 第一个Android程序(一)
- MiniUI快速入门教程(二)编写第一个MiniUI程序:Hello, world!
- Java入门教程系列 – 第一个程序 “hello, world”
- android笔记之---第一个android的项目HelloAndroid
- 木瓜妮子多媒体开发教程---第一天---Android环境搭建和Helloworld项目测试
- JavaGG HelloWorld及Android项目结构介绍
- 第一个Android程序"Hello,World"
- 第3章、第一个“Hello,world!”之Android App(从零开始学Android)
- Android教程-01 Android Studio创建第一个项目
- Android教程-01 Android Studio创建第一个项目
- android 测试项目出现 Test run failed: No test results 的解决方法
- Android第一个apk之HelloWorld
- Android入门教程(五)之------第一个Android工程HelloAndroid
- SpringBoot Helloworld 测试 Maven项目
- 【Robotium测试】环境配置和Android test project项目创建