TestNG assertEquals()与assertTrue()的区别是什么

TestNG assertEquals()与assertTrue()的区别是什么

TestNG支持用于验证的Assertion类。assertTrue()和assertEquals()是该类支持的函数。

assertEquals()

该函数用于断言两个数据值是否相等。可以使用的数据类型包括字符串、整数、布尔值等。用户应确保两个值是相同的数据类型,否则会引发异常。

语法是:

assertEquals(actual, expected)

它接受两个参数:actual和expected,断言值。

当给定的两个数据是相同的时候,断言通过而没有异常。但是,如果两个数据不相同,它会抛出错误。

assertTrue()

该函数用于断言给定的布尔条件是否为true。它接受一个返回布尔值的表达式。如果布尔条件为true,则通过;否则会抛出错误。

语法是:

assertTrue(Boolean_condition)

它只接受返回true或false的表达式。

区别

在实际场景中,用户可以使用这些断言之一来进行验证。

例如:如果用户想要验证2个字符串变量的值,可以使用其中之一。

Assert.assertEquals(a, b)

或者

Assert.assertTrue(a.equals(b))

  • 如果a和b相同,我们在这两个断言中不会找到任何差异,但是当有失败或这两个变量不相同时,我们可以注意到错误信息中的差异。

assertEquals() 提供了清晰的异常信息,如下所示:

java.lang.AssertionError: expected [2] but found [1]

期望:2

实际:1

assertTrue() 提供了异常信息,但不清晰,如下所示:

java.lang.AssertionError: expected [true] but found [false]

期望:true

实际:false

  • assertEquals是 空安全 的,而assertTrue不是 空安全 的,即在比较两个值时,我们可以将null值传递给assertEquals,但不能将null值传递给assertTrue。

示例

以下是一个常见的TestNG类的代码 – OrderofTestExecutionInTestNG

src/ OrderofTestExecutionInTestNG.java

import org.testng.Assert;
import org.testng.annotations.*;

public class OrderofTestExecutionInTestNG {

    // test case 1
    @Test()
    public void testCase1() {

        System.out.println("in test case 1 for assertEqulas as passed");
        Assert.assertEquals(1,1);
    }
    // test case 2
    @Test
    public void testCase2() {

        System.out.println("in test case 2 for assertTrue as passed");
        Assert.assertTrue("1".equals("1"));
    }
    @Test()
    public void testCase3() {

        System.out.println("in test case 3 for assertEqulas as failed");
        Assert.assertEquals(1,2);
    }
    // test case 4
    @Test
    public void testCase4() {

        System.out.println("in test case 4 for assertTrue as failed");
        Assert.assertTrue("1".equals("2"));
    }

}

testng.xml

这是一个配置文件,用于组织和运行TestNG测试用例。

当只需要执行有限的测试而不是完整的测试套件时,它非常方便。

<?xml version = "1.0" encoding = "UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >

<suite name = "Suite1" >
    <test name = "test1">
        <classes>
            <class name = "OrderofTestExecutionInTestNG"/>
        </classes>
    </test>
</suite>

输出

in test case 1 for assertEqulas as passed
in test case 2 for assertTrue as passed
in test case 3 for assertEqulas as failed

java.lang.AssertionError: expected [2] but found [1]
Expected :2
Actual   :1

in test case 4 for assertTrue as failed

java.lang.AssertionError: expected [true] but found [false]
Expected :true
Actual   :false

===============================================
Suite1
Total tests run: 4, Passes: 2, Failures: 2, Skips: 0
===============================================

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程

TestNG 精选笔记