
- TestNG Tutorial
- TestNG - Home
- TestNG - Overview
- TestNG - Environment
- TestNG - Writing Tests
- TestNG - Basic Annotations
- TestNG - Execution Procedure
- TestNG - Executing Tests
- TestNG - Suite Test
- TestNG - Ignore a Test
- TestNG - Group Test
- TestNG - Exception Test
- TestNG - Dependency Test
- TestNG - Parameterized Test
- TestNG - Run JUnit Tests
- TestNG - Test Results
- TestNG - Annotation Transformers
- TestNG - Asserts
- TestNG - Parallel Execution
- TestNG - Plug with ANT
- TestNG - Plug with Eclipse
- TestNG - TestNG - vs JUnit
- TestNG Useful Resources
- TestNG - Quick Guide
- TestNG - Useful Resources
- TestNG - Discussion
TestNG - Asserts
In the previous chapters we executed some tests using TestNG. We didn't declare a test success or fail. A test is considered successful if it completed without throwing any exception or if it threw an exception that was expected.
A test method will typically be made of calls that can throw an exception, or of various assertions (using the Java "assert" keyword). TestNG asserts the tester decides whether the test was successful or not, along with the exceptions. Assertions in TestNG are a way to verify that the expected result and the actual result matched or not.
Following is the generic syntax of TestNG Assertions:
Assert.Method( actual, expected)
actual: The actual value that the tester gets.
expected: The value that you expect.
Create a Class
Let us see an example of assertion here. Create a java class to be tested, say, MessageUtil.java in /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
Create a java class, say, TestAssertion.java in /work/testng/src. Here we assert the actual and expected result.
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()); } }
The preceding test class contains two test methods which will run in separate threads.
Create testng.xml
Create testng.xml in /work/testng/src to execute test case(s).
<?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>
Compile the java files using javac.
/work/testng/src$ javac TestAssertion.java MessageUtil.java
Now, run testng.xml.
/work/testng/src$ java org.testng.TestNG testng.xml
Verify the output.
Manisha =============================================== Suite1 Total tests run: 1, Passes: 0, Failures: 1, Skips: 0 ===============================================
You can check the /work/testng/src/test-output/index.html for detailed report. You will see a report as below:
