对Android中的Java代码进行单元测试(一)
一个app完成后都会需要测试,所以今天我们来了解下单元测试!!!
第一步:首先来看下我们的Java有什么包
第一个包为com.example.one,它主要是用来写布局逻辑一些代码的编辑等
第二个包为com.example.zyl.one(androidText)与第三个包com.example.zyl.one(text)才是我们今天的重点!
第二个包与第三个包都是都是关于测试的包!但区别在于第二个是主要用于测试UI的组件的包。
而第三个包测试的是纯JAVA代码!而今天我们主要学习的就是如何测试纯JAVA代码。
第二步:新建一个Java类,类名为Calculate.
并对其进行编辑,下面来一个简单的小测试
public class Calculate {//四个方法
public double sum(double a,double b){
return a+b;
}
public double substract(double a,double b){
return a-b;
}
public double divide(double a,double b){
return a/b;
}
public double multiply(double a,double b){
return a*b;//返回的是double类型的
}
}
第三步:在第三个包中新建一个测试类,又击Calculate(类名)选中它后会有一个下拉菜如图所示
选择第二个Creatu New Text,因为我已经新建过一个测试类了...
此时弹出一个对话框,选中我们刚刚写的四个方法
单击OK之后便可以在我们的第三个包中看到有CalculateTest类了
第四步:对CalculateTest页面进行编辑
public class CalculateTest {
private Calculate calculate;//首先来定义一个类
@Before
public void setUp() throws Exception {
calculate=new Calculate(); //对其进行实例化
}
下面有四个方法就是我们在Calculate页面中写的四个方法
assertEquals断言 这是应用非常广泛的一个断言,它的作用是比较实际的值和用户预期的值是否一样
@Test
public void textSum() throws Exception {
6代表的是sum(1d,5d)中的两数相加和
d代表的是double类型(返回值类型)
assertEquals(6d,calculate.sum(1d,5d),0);
}
@Test
public void textSubstract() throws Exception {
9代表的是substract(19d,10d中的两数相减的差
d代表的是double类型(返回值类型)
下面一样的了...
assertEquals(9d,calculate.substract(19d,10d),0);
}
@Test
public void textDivide() throws Exception {
assertEquals(6d,calculate.divide(36,6),0);
}
@Test
public void textMultiply() throws Exception {
assertEquals(36d,calculate.multiply(6d,6d),0);
}
}
最后写完之后我们来进行运行下
看到了吗?此时会出现一行绿色,说明我们写的正确才会在测试时显示绿条来!那反之呢?
现在我们在Calculate的页面中来改下测试数据
public double sum(double a,double b){
return a-b;//将原本的“+”改为“-”
}
此时再来运行下
看报红了,原因是什么呢?这时可以双击一下蓝色字体便跳到出错的地方来
@Test
public void textSum() throws Exception {
//此时就变成了两数相减了(1-5=-4了)不是我想要的6,所以出错了
assertEquals(6d,calculate.sum(1d,5d),0);//这里是相加的6是我们想要的值,但我们在Calculate的页面中将它改为了“-”
}