Параметр dataProviderClass служит для того, чтобы можно было хранить данные для теста в другом классе.

Пример.

Метод summ, который надо протестировать:

package com.mysite.calc;

public class Calculator {

public int summ(int a, int b) {
return a + b;
}
}

Отдельный класс DataForCalculator, где хранятся данные для теста:

package Data;

import org.testng.annotations.DataProvider;
import com.mysite.calc.Calculator;


public class DataForCalculator {
private static Calculator calc = new Calculator();

@DataProvider(name = "summLocalData")
public static Object[][] summLocalData() {

return new Object[][]{
{5, calc.summ(2, 3)},
{0, calc.summ(0, 0)},
{0, calc.summ(-2, 2)},
{-100, calc.summ(-30, -70)},
{10000, calc.summ(3000, 7000)},
};
}
}

А вот и сам метод sum для unit — тестирования:

package com.mysite.calculatorTest;
import static org.testng.Assert.assertEquals;
import org.testng.annotations.Test;
import Data.DataForCalculator;

public class CalculatorTest {

@Test(dataProvider = "summLocalData", dataProviderClass = DataForCalculator.class)
public void sum(int rezult, int sumDigit) {
assertEquals(rezult, sumDigit);
}
}

Что важно:

1)Метод summLocalData должен быть объявлен как static

2)У метода sum должен быть параметр dataProviderClass

Лучше все-таки данные для теста хранить в отдельном классе, т.е разнести логику теста в разные классы.

 

 

Реклама