Testng 简明教程
TestNG - Asserts
在前面的章节中,我们使用 TestNG 执行了一些测试。我们没有声明测试成功或失败。如果测试完成时未抛出任何异常,或者抛出的异常是在预料之内的,则该测试会被认为成功。
一个测试方法通常由可能抛出异常或各种断言(使用 Java “assert”关键字)的调用组成。TestNG 断言测试人员在异常发生时决定了测试是否成功。TestNG 中的断言是验证预期结果和实际结果是否匹配的一种方式。
以下是 TestNG 断言的通用语法:
Assert.Method( actual, expected)
-
actual: 测试人员获得的实际值。
-
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 以获得详细报告。你将看到一个如下所示的报告: