zoukankan      html  css  js  c++  java
  • JUnit测试

    JUnit测试框架

    在Java语言中,可以通过JUnit框架进行单元测试,JUnit是由“Erich Gamma”和“Kent Beck”创建的,他们也是在“设计模式”和“极限编程”领域最伟大的作者之一。

    单元测试的实现是很简单的,可以认为它只是判断在某一个时刻,程序运行的值和预期的值是否一致,但在实际的应用的时候是很灵活的,在此介绍JUnit中的一些断言以及JUnit测试框架的使用,使读者能够快速的进入单元测试的领域,更快的进行开发。 断言

    JUnit提供了一些辅助函数,用于帮助开发人员确定某些被测试函数是否工作正常。通常而言,把所有这些函数统称为断言,断言是单元测试最基本的组成部分。

    通常每种类型的断言都有两种形式,一种包含接收一个message参数,例如“static public void assertTrue(String message, boolean condition)”,message表示出错时的提示信息,另外一个则没有message参数。

    下面将分别介绍JUnit框架Assert类中的断言以及部分实现,每个函数的实现方法都为Assert类中定义的方法,读者也可以查看JUnit框架Assert类的实现代码。

    assertEquals断言

    这是应用非常广泛的一个断言,它的作用是比较实际的值和用户预期的值是否一样,assertEquals在JUnit中有很多不同的实现,以参数expected和actual都为Object类型的为例,assertEquals定义为:

    static public void assertEquals(String message, Object expected, Object actual) {  

        if (expected== null&& actual == null)  

            return;  

         if (expected != null&& expected.equals(actual))  

            return;  

         failNotEquals(message, expected, actual);  

     }  

    其中,expected为用户期望某一时刻对象的值,actual为某一时刻对象实际的值。如果这两值相等的话(通过对象的equals方法比较),说明预期是正确的,也就是说,代码运行是正确的。assertEquals还提供了其它的一些实现,例如整数比较,浮点数的比较等等。

    assertTrue与assertFalse断言

    assertTrue与assertFalse可以判断某个条件是真还是假,如果和预期的值相同则测试成功,否则将失败,assertTrue的定义如下:
    其中,expected为用户期望某一时刻对象的值,actual为某一时刻对象实际的值。如果这两值相等的话(通过对象的equals方法比较),说明预期是正确的,也就是说,代码运行是正确的。assertEquals还提供了其它的一些实现,例如整数比较,浮点数的比较等等。

    staticpublic void assertTrue(String message, boolean condition) {  

        if (!condition)   

            fail(message);   

    “condition”表示要测试的状态,如果“condition”的值为false,则测试将会失败。

    assertNull与assertNotNull断言

    assertNull与assertNotNull可以验证所测试的对象是否为空或不为空,如果和预期的相同则测试成功,否则测试失败,assertNull定义为:

    staticpublic void assertNull(String message, Objectobject) {   

        assertTrue(message,object == null);  

     }  

    其中,object就是要测试的对对象,如果object为空,该测试成功,否则失败,是不是很简单。

    assertSame与assertNotSame断言

    assertSame和assertEquals不同,assertSame测试预期的值和实际的值是否为同一个参数(即判断是否为相同的引用)。assertNotSame则测试预期的值和实际的值是不为同一个参数。assertSame的定义为:

    static publicvoid assertSame(String message, Object expected, Object actual) {  

        if (expected== actual)   

            return;   

        failNotSame(message, expected, actual);  

     } 

    而assertEquals则判断两个值是否相等,通过对象的equals方法比较,可以相同引用的对象,也可以不同。

    fail断言

    “fail”断言能使测试立即失败,这种断言通常用于标记某个不应该被到达的分支。例如assertTrue断言中,condition为false时就是正常情况下不应该出现的,所以测试将立即失败,fail的定义为:

    staticpublic void fail(String message) {  

        throw new AssertionFailedError(message);  

     } 

    当一个失败或者错误出现的时候,当前测试方法的执行流程将会被中止,但是位于同一个测试类中的其他测试将会继续运行。
  • 相关阅读:
    ES6-Object
    ES6-Iterator
    ES6-Generator
    ES6-fetch
    ES6-Function
    ES6-Array
    ES6-Class
    SQLite使用事务更新—by command
    交款功能代码
    SQLite本地事务处理
  • 原文地址:https://www.cnblogs.com/vickyx/p/13865601.html
Copyright © 2011-2022 走看看