编写测试用例(大工程时使用)

创建测试工程

测试工程一般是依赖于某个现有的工程,一般的做法是,在现有工程下新建一个test文件,测试工程就放在那里。
先创建一个Android Test Project
然后在AndroidManifest.xml中添加

    <instrumentation
        android:name="android.test.InstrumentationTestRunner"
        android:targetPackage="com.example.broadcastbestpractice"/>
        包名为要测试的android程序的包名。
并在application中添加
<uses-library android:name="android.test.runner"/>

进行单元测试

在要测试的BroadcastBestPractice项目中有一个ActivityCollector类,最主要是用于对所有的Activity进行管理的,那么我么就来测试这个类,首先在BroadcastBestPracticeTest项目中创建一个ActivityCollectorTest类让它继承AndroidTesCase,然后重写setUp()和tearDown(),如下:

    public class ActivityCollectorTest extends AndroidTestCase{
        @override
        protected void setUp() throws Exception{
            super.setUp();
        }
        @override
        protected void tearDown() throws Exception{
            super.tearDown();
        }
    }
  1. 其中setUp()方法会在所有的测试用例执行之前调用,可以在这里进行一些初始化操作,tearDown()方法会在所有的测试用例执行之后调用,可以在这里进行一些资源释放工作。
  2. 只需要定义一个以test开头的方法,测试框架就会自动调用这个,然后我们在方法中可以通过断言(assert)的形式来期望一个运行结果,在和实际的进行比较,这样就可以了,测试用例覆盖的功能越广泛,程序出现bug的机会越小。
  3. 比如说ActivityCollector中的addActivity()方法时用于向集合里添加活动的,那我们给这个方法添加测试用例代码如下:
    public class ActivityCollectorTest extends AndroidTestCase{
        @override
        protected void setUp() throws Exception{
            super.setUp();
        }
        public void testAddActivity(){
            assertEquals(0,ActivityCollector.activity.size());
            LoginActivity loginActivity = new LoginActivity();
            ActivityCollector.addActivity(loginActivity);
            assertEquals(1,ActivityCollector.activities.size());
        }
        @override
        protected void tearDown() throws Exception{
            super.tearDown();
        }
    }

然后点击测试工程Run As->Android JUnit Test来运行这个程序,当我们来测试集合中是否已经包含某个活动时,可以调用contains方法来检测。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值