Testng 简明教程

TestNG - Asserts

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

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

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

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

  2. expected: 你期望的值。

Create a Class

我们来看一个断言的例子。创建一个 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;
   }
}

Create Test Case Class

创建一个 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());
     }
  }

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

Create 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 以获得详细报告。你将看到一个如下所示的报告:

test assertion