美文网首页
JUnit单元测试的简单知识要点

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

作者: Google教徒 | 来源:发表于2017-02-16 11:53 被阅读68次

    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单元测试的简单知识要点

          本文链接:https://www.haomeiwen.com/subject/tatfwttx.html