您的位置:首页 > 其它

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

2015-09-11 09:56 281 查看

创建测试工程

测试工程一般是依赖于某个现有的工程,一般的做法是,在现有工程下新建一个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();
        }
    }



其中setUp()方法会在所有的测试用例执行之前调用,可以在这里进行一些初始化操作,tearDown()方法会在所有的测试用例执行之后调用,可以在这里进行一些资源释放工作。

只需要定义一个以test开头的方法,测试框架就会自动调用这个,然后我们在方法中可以通过断言(assert)的形式来期望一个运行结果,在和实际的进行比较,这样就可以了,测试用例覆盖的功能越广泛,程序出现bug的机会越小。

比如说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方法来检测。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: