Android学习 Eclipse Android 单元测试

来源:互联网 发布:07式作战靴淘宝网 编辑:程序博客网 时间:2024/06/06 02:39

参考自:http://blog.sina.com.cn/s/blog_90cdca4c01015wow.html

Android 采用的单元测试框架为android 自带的junit,具体见Android API。

单元测试:必须有个预期输出值,有个实际输出值,验证预期输出值与实际输出值是否相同,因此被测试的方法肯定会返回一个值

Eclipse下的单元测试,是在模拟器中运行的,因此即使测试某个方法,也会运行模拟器


说明简单测试用例用到的几个类:

Assert 当assert失败时才会打印信息,否则无打印信息

TestCase 继承Assert,若某个类继承TestCase, 该类里可写多个测试方法,每个测试方法会调用Assert的assertEquals()方法来测试方法

AndroidTestCase继承TestCase,若被测试方法需要依赖Activity Context,则继承AndroidTestCase


测试DEMO

1、Manifest.xml 加入权限

<application>标签里加入

 

<uses-library android:name="android.test.runner" />

<application>标签外加入

    <instrumentation        android:name="android.test.InstrumentationTestRunner"        android:targetPackage="com.danny.test" >    </instrumentation>

targertPackage为需被测试的方法所在包,一般与应用同一个包


2.被测试方法

public class DataFormatUtils {public static double formatDistance(double ori){BigDecimal bg = new BigDecimal(ori);double result = bg.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();return result;}public static double add(double n1, double n2) {return n1 + n1;}}


3.测试用例

public class DataFormatUtilsTest extends AndroidTestCase{private String TAG = DataFormatUtilsTest.class.getSimpleName();public void testAdd() throws Throwable{        double actual = DataFormatUtils.add(2,2);        double expected = 4;        assertEquals(expected, actual);    }}


测试用例若未用到Android Activity Context 可直接继承TestCase

assertEquals()方法实际为Assert的方法,由于AnroidTestCase继承了Assert,因此可使用Assert的assertEquals方法


Eclipse 运行单元测试:选中测试用例,右击run as ...android junit Test

若实际与预期值不相同,Junit控制台会打印 Failure Trace,如下

junit.framework.AssertionFailedError: expected:<5.0> but was:<4.0>

预期为5 实际输出值为4

否则,Junit Failure Trace不会打印信息




junit.framework.Assert

Assert 当assert失败时才会打印信息,否则无打印信息

TestCase 继承Assert,若某个类继承TestCase, 该类里可写多个测试方法,每个测试方法会调用Assert的assertEquals()方法来测试方法

AndroidTestCase继承TestCase,若被测试方法需要依赖Activity Context,则继承AndroidTestCase

0 0
原创粉丝点击