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の例
これをテストするには、2つのパラメータ(文字と期待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 ===============================================