Параметр dataProvider служит для удобства, т.е. чтобы данные хранились отдельно от теста(как в DDT) и их можно было легко добавлять/изменять/удалять. Пример, есть некий класс
с методом summ:

package com.mysite.calculator;

public class Calculator {

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

Добавим unit-тесты на данный метод:

package com.mysite.calculatorTest;

import org.testng.annotations.DataProvider;
import org.testng.annotations.Test;

import com.mysite.calculator.Calculator;
import static org.testng.Assert.*;

public class CalculatorTest {

private Calculator calc = new Calculator();

@DataProvider
public 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)},
};
}

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

Красота. Мы создали метод summLocalData типа Object[][]. Данный метод возвращает список параметров для нашего теста, а метод sum
просто сравнивает с помощью assertEquals значения, т.е. что 5 = 2+3, 0 = 0 + 0, 0 = -2 + 2 и т.д.
В результате выполнения мы получаем следующий красивый результат прогона:

resultDataProvider

Реклама