TestNG parameter testing example
Written on December 1, 2009 at 1:19 am by
mkyong
TestNG parameter testing example.
Problem
Let’s say, a utility class has a function for converting the character to ASCII or vice verse, how can you test it with TestNG?
Solution
You can create a unit test function which accept two parameters (character and expected ASCII) from TestNG data provider, and assert the value like following :
Example in Java
package com.mkyong.common; /** * Character Utility class * @author mkyong * */ public class CharUtils { /** * Convert the characters to ASCII value * @param character character * @return ASCII value */ public static int CharToASCII(final char character){ return (int)character; } /** * Convert the ASCII value to character * @param ascii ascii value * @return character value */ public static char ASCIIToChar(final int ascii){ return (char)ascii; } }
Unit Test
package com.mkyong.common; import org.testng.Assert; import org.testng.annotations.*; /** * Character Utils Testing * @author mkyong * */ public class CharUtilsTest { @DataProvider public Object[][] ValidDataProvider() { return new Object[][]{ { 'A', 65 },{ 'a', 97 }, { 'B', 66 },{ 'b', 98 }, { 'C', 67 },{ 'c', 99 }, { 'D', 68 },{ 'd', 100 }, { 'Z', 90 },{ 'z', 122 }, { '1', 49 },{ '9', 57 }, }; } @Test(dataProvider = "ValidDataProvider") public void CharToASCIITest(final char character, final int ascii) { int result = CharUtils.CharToASCII(character); Assert.assertEquals(result, ascii); } @Test(dataProvider = "ValidDataProvider") public void ASCIIToCharTest(final char character, final int ascii) { char result = CharUtils.ASCIIToChar(ascii); Assert.assertEquals(result, character); } }
Result
PASSED: CharToASCIITest(A, 65)
PASSED: CharToASCIITest(a, 97)
PASSED: CharToASCIITest(B, 66)
PASSED: CharToASCIITest(b, 98)
PASSED: CharToASCIITest(C, 67)
PASSED: CharToASCIITest(c, 99)
PASSED: CharToASCIITest(D, 68)
PASSED: CharToASCIITest(d, 100)
PASSED: CharToASCIITest(Z, 90)
PASSED: CharToASCIITest(z, 122)
PASSED: CharToASCIITest(1, 49)
PASSED: CharToASCIITest(9, 57)
PASSED: ASCIIToCharTest(A, 65)
PASSED: ASCIIToCharTest(a, 97)
PASSED: ASCIIToCharTest(B, 66)
PASSED: ASCIIToCharTest(b, 98)
PASSED: ASCIIToCharTest(C, 67)
PASSED: ASCIIToCharTest(c, 99)
PASSED: ASCIIToCharTest(D, 68)
PASSED: ASCIIToCharTest(d, 100)
PASSED: ASCIIToCharTest(Z, 90)
PASSED: ASCIIToCharTest(z, 122)
PASSED: ASCIIToCharTest(1, 49)
PASSED: ASCIIToCharTest(9, 57)
===============================================
com.mkyong.common.CharUtilsTest
Tests run: 24, Failures: 0, Skips: 0
===============================================
===============================================
mkyong
Total tests run: 24, Failures: 0, Skips: 0
===============================================
This article was posted in unittest category.
All Java Tutorials
- Java Core Technology - Java RegEx, Java XML, Java I/O, Java Misc
- J2EE Frameworks - Hibernate, Spring 2.5, Spring MVC, Struts 1.x, Struts 2.x
- Build Tools - Maven, Archiva
- Unit Test - jUnit, TestNG
- Client Scripts - jQuery
Nice one