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
廣告