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调试、测试
阅读全文
0 0
- android测试
- android测试
- Android测试
- android 测试
- Android测试
- android测试
- Android 测试
- android测试
- 【Android测试】
- Android测试
- Android测试
- Android测试
- Android测试
- Android测试
- Android测试
- Android测试
- Android测试
- android 测试
- YOLO训练自己的数据集
- JSTL和EL
- Q111:PBRT-V3系统概述
- caffe问题
- postgres standby实现同步流复制
- Android测试
- nmap "ppp0" is not an ethernet device
- HTML系列之基础标签(一)
- 网络编程:基于TCP的socket网络传输视频(C++, python)
- c++ builder中的 XMLDocument 类详解(0)
- |BZOJ 1652|区间DP|[Usaco2006 Feb]Treats for the Cows
- 用jdk自带的native2ascii转换中文字符为unicode
- 算法分析
- 写给毕业时的我