测试相关的概念:
1. 好的应用都是被测出来的
2. 测试的分类:
1)根据是否知道源代码:
白盒测试: 知道源代码 根据源代码来进行测试 (程序员 高级测试人员)
黑盒测试: 不知道源代码 知道产品的功能 根据功能去测试 (大部分小型公司的做法)
2)根据测试的粒度(精细程度):
方法测试: 写一个测试方法 测试某个类里面的方法
单元测试:可以测试某一个方法 测试多个方法 (安卓下的单元测试 测试Dao层)
集成测试: 软件除了有前端 还有后台 如果对软件的某一模块的前端 后台做统一的测试
系统测试: 对同一产品下的多个软件进行统一测试 多个软件之间存在一定的关系.
3)测试的暴力程度:
压力测试: 单一的时间内 进行重复的频繁的测试. 用来检验系统的稳定性
冒烟测试: 一段时间内的重复的 无规律的测试
Android下的单元测试:
android下的单元测试可以直接用来测试某个方法而不需要直接写完整个功能
android下的junit测试用例与普通的pc机下的java代码不一样,要把应用程序部署到模拟器或者真实的手机才能测试。
android下的单元测试既可以测试一个方法 也可以测试多个方法
Android JunitTest开发步骤:
1. 写一个业务方法
public class MockCalculator {
<span style="white-space:pre"> </span>/**
<span style="white-space:pre"> </span>* 模拟的业务方法 可以认为当前就是对数据库进行操作
<span style="white-space:pre"> </span>*/
<span style="white-space:pre"> </span>public static int add(int x,int y){
<span style="white-space:pre"> </span>return x + y;
<span style="white-space:pre"> </span>}
<span style="white-space:pre"> </span>
<span style="white-space:pre"> </span>/**
<span style="white-space:pre"> </span> * 模拟的业务方法 可以认为当前就是对数据库进行操作
<span style="white-space:pre"> </span> */
<span style="white-space:pre"> </span>public static int multi(int x,int y){
<span style="white-space:pre"> </span>return x * y;
<span style="white-space:pre"> </span>}
}
2. 创建一个类继承AndroidTestCase
3. 编写测试代码(记住抛异常)。
assertEquals(期待的结果,真实的结果)
public class CalculatorTest extends AndroidTestCase{
//1.继承一个类AndroidTestCase
//2.定义一个方法 抛出异常
public void testAdd() throws Exception{
int addResult = MockCalculator.add(3, 6);
assertEquals(9, addResult);
}
public void testMulti()throws Exception{
int multiResult = MockCalculator.multi(2, 4);
assertEquals(8, multiResult);
}
}
4. 配置AndroidMenifest.xml清单文件。
<!--android:targetPackage 需要测试的包 一般是应用的包名-->
<instrumentation android:name="android.test.InstrumentationTestRunner"
android:targetPackage="com.example.junit">
</instrumentation>
5. 运行测试代码,对着方法名右键,run as android junit test。
6. 根据红色或者绿色判断错对。