zoukankan      html  css  js  c++  java
  • Android Junit测试框架

    对应用进行单元测试:

    使用Junit测试框架,是正规Android开发的必用技术。在Junit中可以得到组件,可以模拟发送事件和检测程序处理的正确性。

    1.配置指令集和函数库:

    (1)配置指令集,指定要测试的应用程序

       需要在AndroidManifest.xml的instrumentation中增加InstrumentationTestRunner,并指定要测试的包名。

       AndroidManifest.xml中会添加代码:

       <instrumentation android:targetPackage="com.example.firstdemo" android:name="android.test.InstrumentationTestRunner"></instrumentation>

    (2)配置函数库

       在Application中加<uses-library android:name="android.test.runner"/>

    (3)加入Junit的jar包

       项目右击-->Build Path-->Add Library-->JUnit-->JUnit4-->确定

    2.编写单元测试代码(选择要测试的方法名,右击"Run As"....."Android Junit Test")

    示例代码:

    public class TestPersonDB extends AndroidTestCase{
        public void testCreateDB(){
            PersonSQLiteOpenHelper helper=new PersonSQLiteOpenHelper(getContext());
            SQLiteDatabase db=helper.getWritableDatabase();
            
        }
        
        public void testAdd(){
            PersonDao2 dao=new PersonDao2(getContext());
    //        dao.add("wangwu", "123",5000);
    //        dao.add("zhangsan", "321",2000);
            
            long num=8900000000000l;
            Random random=new Random();
            for (int i = 0; i < 50; i++) {
                dao.add("wangwu"+i, num+i+"", random.nextInt(5000));
            }
        }
        
        public void testFind(){
            PersonDao2 dao=new PersonDao2(getContext());
            boolean result=dao.find("wangwu");
            assertEquals(true, result); //断言:期待的值是true,真实的值是result
        }
        
        public void update(){
            PersonDao2 dao=new PersonDao2(getContext());
            dao.update("wangwu", "321");
        }
        
        public void delete(){
            PersonDao2 dao=new PersonDao2(getContext());
            dao.delete("wangwu");
        }
        
        public void findAll(){
            PersonDao2 dao=new PersonDao2(getContext());
            List<Person> persons=dao.findAll();
            for (Person person : persons) {
                System.out.println(person.toString());
            }
            
        }
        
        //用事务的方式实现银行转账
        public void testTransaction(){
            PersonSQLiteOpenHelper helper=new PersonSQLiteOpenHelper(getContext());
            SQLiteDatabase db=helper.getWritableDatabase();
            db.beginTransaction();
            try {
                //这两句执行代码要么都执行成功,要么都不成功
              db.execSQL("update person set account=account-1000 where name=?",new Object[]{"zhangsan"});
              db.execSQL("update person set account=account+1000 where name=?",new Object[]{"wangwu"});
              //标记数据库事务执行成功,默认执行是失败的,数据不会commit,会回滚    
              db.setTransactionSuccessful();
            } finally {
              db.endTransaction();
              db.close();
            }
    
        }
    }
  • 相关阅读:
    [hdu5312]数的拆分,数学推导
    [POJ1038]状压DP
    [hdu2112]最短路
    [hdu1532]最大流
    [hdu5256]LIS模型
    [hdu5255]枚举
    [hdu5254]BFS
    [hdu5270]按位统计,容斥,归并
    Elasticsearch在Centos 7上的安装与配置
    手动安装java1.8
  • 原文地址:https://www.cnblogs.com/Joanna-Yan/p/4657390.html
Copyright © 2011-2022 走看看