标签:
序言
当程序业务逻辑也越来越复杂的时候,测试当中出了业务逻辑的bug是最难改了。如果说你有写单元测试的习惯,通过业务逻辑的单元测试可以很容易找到出错的代码块,然后解决掉。今天来给大家介绍下android中的单元测试基本使用
What android的单元测试可以干些什么事
android的framework中提供有关单元测试的api,首先我们先来看一下api的架构体系图
由此可以见系统已经支持 android中重要组件的单元测试(activity,Service,ContentProvider和Application)的单元测试
在实际工作当中可能对于业务逻辑测试和接口测试会偏多一些
比如mock一些业务流程 然后去写TODO伪代码,测试是否符合预期,然后去做UI实现。首先保证我们的业务逻辑不会出错,这样才能保证我们的程序不会出大的bug
How 如何使用
测试业务逻辑的单元测试
当测试不需要对app内部资源引用的时候,我们可以用org.junit.Test,此方式不会安装app到手机中
1.我们新建一个OperationServiceUnitTest
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import static org.junit.Assert.*;
/**
* Created by qinwei on 16/5/6 下午3:15
*/
public class OperationServiceUnitTest {
private OperationService service;
@Before
public void setUp() throws Exception {
// TODO 做一些测试配置
service=new OperationService();
}
@Test
public void testAdd() throws Exception {
assertEquals(1,service.add(1,1)) ;
}
@Test
public void testMultiplicative() throws Exception {
assertEquals(2,service.multiplicativ(1,1)) ;
}
@After
public void tearDown() throws Exception {
// TODO 测试结束调用
}
2.写一个方法testAdd 方法用@Test注解修饰
@Test
public void testAdd() throws Exception {
service=new OperationService();
//对测试结果做一个预期判断
assertEquals(2,service.add(1,1)) ;
}
测试通过后我们可以看到这个界面
测试不通过
当涉及到app内部资源的单元测试,此方式会安装app到手机中
1.创建AndroidTestCase子类
/**
* Created by qinwei on 16/5/6 下午3:48
*/
public class LoginTest extends AndroidTestCase {
public void testLogin() throws Exception {
String username = getContext().getString(R.string.username);
String password = getContext().getString(R.string.password);
LoginBiz biz = new LoginBiz();
assertEquals(true, biz.doLogin(username, password));
}
}
可用通过getContext方法拿到上下文对象,你就可以用此对象进行对数据库操作,sp操作,得到String.xml文件数据等等
-------------activity的单元测试待续------------
结束语
文中有讲到不对的地方还请大家斧正。
标签:
原文地址:http://blog.csdn.net/qinwei1993/article/details/51332461