11.TestNG参数测试实例

Posted by Shen's Blog on Tuesday, December 6, 2022

TestNG参数测试实例

另一个TestNG参数测试示例,是使用@DataProvider注解。

1.CharUtil类

创建一个将字符转换成ASCII或者副词的类,如何使用TestNG来做单元测试?

CharUtils.java


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

要测试它,创建一个接受两个参数(字符和预期ASCII)的@Test方法,并且测试数据从数据提供者传递。 创建一个类文件:CharUtilsTest.java 的代码如下


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

    }
}

运行日志如下:


===============================================
Default Suite
Total tests run: 24, Failures: 0, Skips: 0
===============================================