Android测试教程(5):第一个测试项目HelloWorldTest

本文介绍了一个简单的JUnit测试案例编写过程,包括创建测试项目、编写测试用例等步骤。以一个Greeting类为例,展示了如何使用JUnit框架进行单元测试。

本例介绍创建一个测试项目的一般步骤和编写测试用例的基本方法。

为简单起见,创建一个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 窗口显示最终测试结果。

在开发应用过程中,可以一边编写应用,一边编写测试用例。


评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值