android 单元测试

来源:互联网 发布:易语言cc攻击器源码 编辑:程序博客网 时间:2024/06/05 02:18

一、Android单元测试

基本流程

新建一个测试工程( Android Test Project),选择你要测试的工程,或者说你要测试的类所在的工程,创建测试用例,如果有需要还可以建立TestSuite来配置要测试的用例,最后右键选择测试用例类,run as – >“Android Junit Test” 即可。然后你也可以直接在被测试工程中测试,这样不需要建立测试工程。


1、建立测试工程


                                                                                               图 1


2、选择要测试的工程


                                                                                            图 2 

3、选择目标平台


                                                                                                 图 3 


4、选择finish后,在AndroidManifest.xml中填写如下代码:

<! –  添加InstrumentationTestRunner ,targetPackage修改成你的测试工程的包名即可-->    <instrumentation        android:name="android.test.InstrumentationTestRunner"        android:targetPackage="com.example.umengsocialtest" /><! –  application 添加test runner --><application        android:icon="@drawable/ic_launcher"        android:label="@string/app_name" ><! –  添加test runner -->        <uses-library android:name="android.test.runner" /></application>


5、右键点击测试工程的“src”目录,选择”new”-->“Junit Test Case”,然后输入测试用例名称和要继承的测试类,正常情况下,继承自AndroidTestCase即可,如果你要测试的类依赖于Activity,你可以继承自ActivityInstrumentationTestCase2<T>,其中T为你mockActivity,你可以在测试工程下新建一个Activity用于测试,这里我们选择继承自ActivityInstrumentationTestCase2。最后选择你要测试的类,这里我选择的是UMAppAdapter。选择”next”,然后选择你要测试的方法,勾选即可。如图4


                                                                                              图 4 


6、选择要测试的方法


                                                                                                    图 5


7、如果你要测试的类需要Activity参数,你可以创建一个Activity来用于测试,使用AndroidTestCasse则不需要这么做。代码如下:

public class MockActivity extends Activity {    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);    }}

8、在测试用例中,填写代码


public class UMAppAdapterTest extends ActivityInstrumentationTestCase2<MockActivity> {    /**     *      */    private Activity mActivity = null;    /**     *      */    private UMBaseAdapter mAdapter = null;    /**     * @Title: UMAppAdapterTest     * @Description:       * UMAppAdapterTest Constructor     *      * @param activityClass     */    public UMAppAdapterTest(Class<MockActivity> activityClass) {        super(activityClass);    }    public UMAppAdapterTest() {        super(MockActivity.class);        setName("MockActivity");    }    @Before    protected void setUp() throws Exception {        super.setUp();        mActivity = getActivity();        assertNotNull(mActivity);    }    @After    protected void tearDown() throws Exception {        super.tearDown();        mActivity = null;        clearState();    }    @Test    public void testGetBitmap() {        mAdapter = new UMAppAdapter(mActivity);        // 实际会触发截屏操作,返回当前截屏        assertNotNull(mAdapter.getBitmap());        // 使用控制器来截图, 实际上调用的是mAdapter.getBitmap()        UMScrShotController controller = UMScrShotController.getInstance();        controller.setAdapter(mAdapter);        assertNotNull(controller.takeScreenShot());    } }

为了篇幅简短,这里只列出了部分测试用例代码。


二、TestSuite的使用

1、新建一个JunitTest Case,父类选择TestSuite,如图6


                                                                                                                                           图 6

2样例代码如下,覆写suite(),然后添加你要测试的测试用例即可。com.example.socialtest.ut.scrshotlib.UMAppAdapterTestUMAppAdapterTest这个测试用例的完整路径,添加进去即可。多个测试用例使用逗号隔开。如下

public class YourTestSuite extends TestSuite {    public static Test suite() {        return new TestSuiteBuilder(SocialTestSuite.class).includePackages(                "com.example.socialtest.ut.scrshotlib.UMAppAdapterTest",                "com.example.socialtest.ut.scrshotlib.UMScrShotControllerTest"                ).build();    }}

3、最后右键选择你的TestSuite类,选择”runas “, 然后选择android Junit Test即可运行TestSuite.

如图7。


                                                                                                                                         图7


 
原创粉丝点击