android 单元测试

一、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


 
  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值