An easier way would be to create an interface using the method Integer computeSpeed(Integer time, Integer distance);:
public interface DistanceCalculator {
Integer computeSpeed(Integer distance, Integer time);
}
StudentNameDistanceCalculator. , :
public class AssyliasDistanceCalculator implements DistanceCalculator {
public Integer computeSpeed(Integer distance, Integer time) {
return distance / time;
}
}
public class BobDistanceCalculator implements DistanceCalculator {
public Integer computeSpeed(Integer distance, Integer time) {
return distance / time * 2;
}
}
. , TestNg:
@Test(dataProvider = "students")
public void testMethod(Class<?> clazz) throws Exception {
DistanceCalculator dc = (DistanceCalculator) clazz.newInstance();
assertEquals(dc.computeSpeed(3, 1), (Integer) 3,
clazz.getSimpleName().replace("DistanceCalculator", "") + " failed");
}
@DataProvider(name = "students")
public Object[][] dataProvider() {
return new Object[][]{
{AssyliasDistanceCalculator.class},
{BobDistanceCalculator.class}};
}
, :
