TestNG - 断言


在前面的章节中,我们使用 TestNG 执行了一些测试。我们没有宣布测试成功失败。如果测试完成且没有引发任何异常或者引发了预期的异常,则测试被视为成功。

测试方法通常由可以引发异常的调用或各种断言(使用 Java“assert”关键字)组成。TestNG 断言测试人员决定测试是否成功以及异常。TestNG 中的断言是验证预期结果和实际结果是否匹配的一种方法。

以下是 TestNG 断言的通用语法:

  Assert.Method( actual, expected)
  • 实际:测试者获得的实际值。

  • 预期:您期望的值。

创建一个类

让我们在这里看一个断言的例子。在/work/testng/src中创建一个要测试的 java 类,例如MessageUtil.java

/*
* This class prints the given message on console.
*/

public class MessageUtil {

   private String message;

   //Constructor
   //@param message to be printed
   public MessageUtil(String message) {
      this.message = message;
   }

   // prints the message
   public String printMessage() {
      System.out.println(message);
      return message;
   }
}

创建测试用例类

/work/testng/src中创建一个 java 类,例如TestAssertion.java。在这里我们断言实际的和预期的结果。

  import org.testng.Assert;
  import org.testng.annotations.Test;

  public class TestAssertion {
     String message = "Manisha";
     MessageUtil messageUtil = new MessageUtil(message);

     @Test
     public void testPrintMessage() {
        Assert.assertEquals("Tutorialspoint", messageUtil.printMessage());
     }
  }

前面的测试类包含两个测试方法,它们将在单独的线程中运行。

创建testng.xml

在/work/testng/src中创建 testng.xml以执行测试用例。

  <?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 = "TestAssertion"/>
        </classes>
     </test>
  </suite>

使用 javac 编译 java 文件。

/work/testng/src$ javac TestAssertion.java MessageUtil.java

现在,运行 testng.xml。

/work/testng/src$ java org.testng.TestNG testng.xml

验证输出。

  Manisha

  ===============================================
  Suite1
  Total tests run: 1, Passes: 0, Failures: 1, Skips: 0
  ===============================================

您可以查看/work/testng/src/test-output/index.html以获取详细报告。您将看到如下报告:

断言报告