TestNG - 断言



在前面的章节中,我们使用 TestNG 执行了一些测试。我们没有声明测试的成功失败。如果测试在没有抛出任何异常的情况下完成,或者抛出了预期的异常,则该测试被认为是成功的。

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

以下是 TestNG 断言的通用语法

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

  • 预期值: 您期望的值。

创建类

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

/*
* 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;
   }
}

创建测试用例类

创建一个 Java 类,例如,TestAssertion.java,位于/work/testng/src目录下。在这里,我们断言实际结果和预期结果。

  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 以获取详细报告。您将看到如下所示的报告

Assertion Report
广告