TestNG参数测试示例

另一个TestNG参数测试示例,使用@DataProvider

1. CharUtil类

假设是一个将字符转换为ASCII或反之的类,如何使用TestNG对它进行单元测试?

CharUtils.java
package com.mkyong.testng.examples.parameter;

/**
 * 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;
	}
}

2. TestNG @DataProvider示例

要对其进行测试,请创建一个接受两个参数(字符和预期ASCII)的@Test方法,然后从数据提供者传递测试数据。

CharUtilsTest.java
package com.mkyong.testng.examples.parameter;

import org.testng.Assert;
import org.testng.annotations.DataProvider;
import org.testng.annotations.Test;
/**
 * 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); 
		   
	}
}

结果

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
===============================================

更多参数示例。
有关更多示例,请参考XML和DataProvider的TestNG参数测试 。

翻译自: https://mkyong.com/unittest/testng-parameter-testing-example/

你可能感兴趣的:(TestNG参数测试示例)