Android测试

来源:互联网 发布:联合国五常 知乎 编辑:程序博客网 时间:2024/06/15 09:33

测试

按岗位分

  • 黑盒测试:测试业务逻辑
  • 白盒测试:测试逻辑方法

按测试粒度

  • 方法测试 function
  • 单元测试 unit
  • 集成测试 integration
  • 系统测试 system

按暴力程度

  • 冒烟测试 smoke
  • 压力测试 pressure

monkey

单元测试框架

  • 可以直接云心代码
  • 需要指定指令集和定义使用的类库
  • #单元测试junit
  • 定义一个类继承AndroidTestCase,在类中定义方法,即可测试该方法

  • 在指定指令集时,targetPackage指定你要测试的应用的包名

    <instrumentation android:name="android.test.InstrumentationTestRunner"android:targetPackage="包名"></instrumentation>
  • 定义使用的类库

    <uses-library android:name="android.test.runner"></uses-library>
  • 断言的作用,检测运行结果和预期是否一致

  • 如果应用出现异常,会抛给测试框架
public class Test extends AndroidTestCase{    private MyOpenHelper oh;    private SQLiteDatabase db;    public void test(){        //                              获取虚拟上下文        MyOpenHelper oh = new MyOpenHelper(getContext());        //如果数据库不存在,先创建,再打开,如果存在,就直接打开        SQLiteDatabase db = oh.getWritableDatabase();    }    //测试方法执行前调用    @Override    protected void setUp() throws Exception {        super.setUp();        oh = new MyOpenHelper(getContext());        db = oh.getWritableDatabase();    }    //测试方法结束时调用    @Override    protected void tearDown() throws Exception {        super.tearDown();        db.close();    }    public void insert(){//      db.execSQL("insert into person(name, phone, salary) values (?, ?, ?)", new Object[]{"傻逼", "138438", 13000});        db.execSQL("insert into person(name, phone, salary) values (?, ?, ?)", new Object[]{"菜逼", "138438", 13000});        db.execSQL("insert into person(name, phone, salary) values (?, ?, ?)", new Object[]{"坑逼", "138438", 13000});    }    public void delete(){        db.execSQL("delete from person where name = ?", new Object[]{"傻逼"});    }    public void update(){        db.execSQL("update person set salary = ? where name = ?", new Object[]{13200, "菜逼"});    }    public void select(){        Cursor cursor = db.rawQuery("select * from person", null);        //把指针移动至下一行        while(cursor.moveToNext()){            //先通过列名,获取列索引,然后再获取该列的内容            String name = cursor.getString(cursor.getColumnIndex("name"));            String phone = cursor.getString(cursor.getColumnIndex("phone"));            int salary = cursor.getInt(cursor.getColumnIndex("salary"));            System.out.println(name + ";" + phone + ";" + salary);        }    }    public void insertApi(){        ContentValues values = new ContentValues();        values.put("name", "菜鳥");        values.put("phone", "1388888");        values.put("salary", "13201");        //返回值-1,插入失败        long l = db.insert("person", null, values);        System.out.println(l);    }    public void deleteApi(){        int i = db.delete("person", "_id = ?", new String[]{"6"});        System.out.println(i);    }    public void updateApi(){        ContentValues values = new ContentValues();        values.put("name", "死坑");        int i = db.update("person", values, "_id = ?", new String[]{"5"});        System.out.println(i);    }    public void selectApi(){        //arg1: 查询的字段        //arg2: 查询的where条件        //arg3: where条件的占位符        Cursor cursor = db.query("person", null, null, null, null, null, null, null);        while(cursor.moveToNext()){            String name = cursor.getString(1);            String phone = cursor.getString(2);            int salary = cursor.getInt(3);            System.out.println(name + ";" + phone + ";" + salary);        }    }    public void transaction(){        try{            //开启事务            db.beginTransaction();            ContentValues values = new ContentValues();            values.put("salary", 13199);            db.update("person", values, "name = ?", new String[]{"菜逼"});            //清空values的内容            values.clear();            values.put("salary", 13202);            db.update("person", values, "name = ?", new String[]{"坑逼"});//          int i = 9 / 0;            //设置事务执行成功,提交时如果这行代码没有执行过,就会回滚            db.setTransactionSuccessful();        }        catch (Exception e) {            e.printStackTrace();        }        finally{            //关闭事务,提交数据            db.endTransaction();        }    }}

参考:Android调试、测试

原创粉丝点击