TestNG断言

TestNG中的Assertion,也是断言。
断言是测试中最难写的部分。

  • Assert类(硬断言)

断言类是Assert.java,里面有多个静态方法被称为硬断言,硬断言就是,如果运行到折行断言失败,即使该用例,后面还有其他代码行,也不会继续执行下去

Assert.assertEquals( expected,actual)

TestNG断言_第1张图片
image.png

TestNG中提供了多个33个assertEquals()方法,主要是匹配不同的数据类型和集合类操作。

举例:

package com.example.lenovo.myapplication;


import org.testng.annotations.Test;

import static junit.framework.TestCase.assertEquals;

/**
 * Example local unit test, which will execute on the development machine (host).
 *
 * @see Testing documentation
 */


public class ExampleUnitTest {

    @Test


    public void addition_isCorrect() throws Exception {
        assertEquals(4, 2 + 2);
        assertEquals(5,1+9);


    }
}

TestNG断言_第2张图片
image.png

上面可以看出assertEquals中Expected和Actual不相等,如果现实结果和期待结果不相等,抛出断言异常并显示内容,这样抛出错误,更能快速读懂错误的原因和错误的具体业务逻辑

(1) assertTrue:判断是否为True。
(2) assertFalse:判断是否为false。
(3) assertSame:判断引用地址是否相同。
(4) assertNotSame:判断引用地址是否不相同。
(5) assertNull:判断是否为null。
(6) assertNotNull:判断是否不为null。
(7) assertEquals:判断是否相等,Object类型的对象需要实现haseCode及equals方法。
(8) assertNotEquals:判断是否不相等。
(9) assertEqualsNoOrder:判断忽略顺序是否相等

  • SoftAssert(软断言)

SoftAssert的特点
1) 如果一个断言失败,会继续执行这个断言下的其他语句或者断言
2) 也就是一个用例有多个断言,失败了其中一个,不影响其他断言的运行
3) 不要忘记调用assertAll()在该用例的最后一个断言后面
4) 软断言的类,叫SoftAssert.java,这个类是需要创建实例对象,才能调用相关实例方法进行软断言

package testng;  
  
import org.testng.annotations.Test;  
import org.testng.asserts.SoftAssert;  
  
public class AssertTestDemo {  
  
    @Test  
    public void testSoftAssert(){  
        System.out.println("Test start");  
        SoftAssert assertion = new SoftAssert();  
        assertion.assertEquals(12, 13,"两者不相等");  
        System.out.println("Test complete");  
        System.out.println(3+8);  
        assertion.assertAll();  
    }  
}  

运行结果:


TestNG断言_第3张图片
image.png

通过运行结果截图,可以看到在断言12和13相等的这行代码后面还有其他的语句,如果这里采用的是硬断言,那么Test complete 和 11是不会输出,也就是代码没有被执行。这个就是SoftAssert的优点,再强调一次,最后一定要调用assertAll()方法

你可能感兴趣的:(TestNG断言)