JUnit单元测试的简单知识要点

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,那么我把计算出来的正确结果作为第一参数穿进去,那么第二个参数就很简单了,是实际计算结果。

好了,咱们测试一下正确结果:

cs.png

把光标放在测试方法后面,右键点击Run testAdd(),可以看到正确结果:

s.png

然后再来看看错误的反馈,Assert.assertEquals(0,sum)把第一个正确结果改成0

er.png

可以看到,结果是报错,并且告诉了你参数的结果,证明测试参数失败。

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);
#很简单,可以用一个字符串类型传进去,如果结果不符合检测结果,便会通知错误,参照下面图片
字符串参数.png

好,相关基础知识就先介绍到这里。
待我有时间会逐步完善,这只是简单的第一步~

你可能感兴趣的:(JUnit单元测试的简单知识要点)