1:JUnit
1):Android Studio 自带,无须构建添加
2):目前仅限于单一功能测试,如计算、验证等
3)关键标签
- @Before = 构建测试实体类。
- @Test = 表明该方法属于测试方法
- @After = 当测试类完成后执行的方法标签。在测试当中,有可能读取一些文字资源、设置图像(Bitmap)、SQLlst等等,当在@Before创建实体对象后,需要在@After标签方法内关闭资源,释放资源。
4):代码
//假设我单一测试一个类下面一个简单计算方法
public class Calculator {
public int add(int one , int two){
return one + two;
}
}
//然后,我们需要在Modle/src/text/java文件夹下面见了一个单元测试类
//单元测试类
public class CalculatorTest {
Calculator calculator;//创建一个我们需要测试的类对象
//利用@Before创建Calculator 测试对象
@Before
public void setUp(){
calculator = new Calculator();
}
@Test
public void testAdd() throws IllegalFormatException{
int sum = calculator.add(4,2);
Assert.assertEquals(6,sum);//下面说明
}
}
Assert.assertEquals(value,value)方法说明
方法参数第一是代表你要测试的方法正确结果,比如我上面的方法要测试的加法是否等于6,那么我把计算出来的正确结果作为第一参数穿进去,那么第二个参数就很简单了,是实际计算结果。
好了,咱们测试一下正确结果:
把光标放在测试方法后面,右键点击Run testAdd(),可以看到正确结果:
然后再来看看错误的反馈,Assert.assertEquals(0,sum)把第一个正确结果改成0
可以看到,结果是报错,并且告诉了你参数的结果,证明测试参数失败。
Assert.assertEquals()介绍
更多的时候,上面介绍简单的Assert.assertEquals()方法并不能满足我们的需求, 然而,并不是!
下面介绍一些其他用法:
//验证expected的值跟actual是一样的,如果是一样的话,测试通过,不然的话,测试失败。如果传入的是object,那么这里的对比用的是equals()
assertEquals(expected, actual)
//这里传入的expected和actual是float或double类型的,大家知道计算机表示浮点型数据都有一定的偏差,所以哪怕理论上他们是相等的,但是用计算机表示出来则可能不是,所以这里运行传入一个偏差值。如果两个数的差异在这个偏差值之内,则测试通过,否者测试失败。
assertEquals(expected, actual, tolerance)
//验证contidion的值是true
assertTrue(boolean condition)
//验证contidion的值是false
assertFalse(boolean condition)
//验证obj的值是null
assertNull(Object obj)
//验证obj的值不是null
assertNotNull(Object obj)
//验证expected和actual是同一个对象,即指向同一个对象
assertSame(expected, actual)
//验证expected和actual不是同一个对象,即指向不同的对象
assertNotSame(expected, actual)
#值得注意的是,上面所有方法都可以加一个参数,如:
Assert.assertEquals("计算错误!",0,sum);
#很简单,可以用一个字符串类型传进去,如果结果不符合检测结果,便会通知错误,参照下面图片
好,相关基础知识就先介绍到这里。
待我有时间会逐步完善,这只是简单的第一步~