zoukankan      html  css  js  c++  java
  • [android] android下junit测试框架配置

    我们的业务代码一般是放在一个新的包下面,这个业务类不能够通过右键run as java application,因为android项目只能运行在手机上的dalvak虚拟机里面

    新建一个包,里面写测试类,测试类需要继承AndroidTestCase类,写测试方法,需要throws exception抛出异常给测试框架,测试方法里面一般new出需测试的类,调用它的方法,然后断言结果,assertEquals(预估实际结果)

    outline视窗 (window=>show view=>outline)里面选中该方法右键run as android junit test

    此时会报错

    [2016-02-27 21:29:54 - 单元测试单元测试 does not specify a android.test.InstrumentationTestRunner instrumentation or does not declare uses-library android.test.runner in its AndroidManifest.xml

    需要在清单文件里面配置instrumentation指令集

        <!-- 指令集在manifest节点下 -->

        <!-- 测试用例,名称是固定的,目标包名 -->

        <instrumentation

            android:name="android.test.InstrumentationTestRunner"

            android:targetPackage="com.tsh.junit" >

    </instrumentation>

                <!-- 使用的函数库,在application节点下 -->

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

    Xml里面写注释 ctrl+shift+/

    Junit里面打印出绿条,说明没有错误,如果有错误打印红色的条,错误追逐里面有错误信息,如断言错误等,如果清单文件里面的信息记不住,那么请这样操作,new => project =>android android test project => select test target 完成以后会有个项目里面有清单文件 

    java代码:

    package com.tsh.junit.test;
    
    import com.tsh.junit.service.CalcService;
    
    import android.test.AndroidTestCase;
    
    public class CalServiceTest extends AndroidTestCase {
        public void testAdd() throws Exception{
            CalcService service=new CalcService();
            int res=service.add(3, 5);
            assertEquals(8, res);
        }
    }

    清单文件:

    <?xml version="1.0" encoding="utf-8"?>
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
        package="com.tsh.junit"
        android:versionCode="1"
        android:versionName="1.0" >
        <!-- 指令集在manifest节点下 -->
        <!-- 测试用例,名称是固定的,目标包名 -->
        <instrumentation
            android:name="android.test.InstrumentationTestRunner"
            android:targetPackage="com.tsh.junit" >
        </instrumentation>
    
        <uses-sdk
            android:minSdkVersion="8"
            android:targetSdkVersion="23" />
    
        <application
            android:allowBackup="true"
            android:icon="@drawable/ic_launcher"
            android:label="@string/app_name"
            android:theme="@style/AppTheme" >
            <!-- 使用的函数库,在application节点下 -->
            <uses-library android:name="android.test.runner"/>
            <activity
                android:name=".MainActivity"
                android:label="@string/app_name" >
                <intent-filter>
                    <action android:name="android.intent.action.MAIN" />
    
                    <category android:name="android.intent.category.LAUNCHER" />
                </intent-filter>
            </activity>
        </application>
    
    </manifest>
  • 相关阅读:
    (感受)新人生的三种境界
    (学)如何在打印时对横向页面重复左端标题
    (原)解决.NET 32位程序运行在64位操作系统下的兼容性问题
    (原)儿子上小学了
    OSG学习过程中的笔记
    从c++角度学习JAVA、Android的总结
    Android Studio利用cmakelists.txt编译OSG的方法总结
    android studio 利用gradle和cmakelist生成c++静态库.a的方法总结
    Android Studio使用c++静态库的方法总结(hello-libs为例)
    Android.mk、CMake、Gradle简介 NDK和JNI的关系
  • 原文地址:https://www.cnblogs.com/taoshihan/p/5223699.html
Copyright © 2011-2022 走看看