Я думаю, вы можете сделать это с новыми функциями JUnit4.
Напишите правило, которое выполняет @Before и @After каждый раз: JUnit Kungfu slide 34
Напишите параметризованный тест, который вычисляет результат: JUnit Kungfu slide 23
Если вы работаете с электронной таблицей, вы можете заполнить электронную таблицу такими значениями, как текущее значение;max
import static org.hamcrest.MatcherAssert.*;
import static org.hamcrest.Matchers.*;
import static org.junit.matchers.JUnitMatchers.*;
import java.util.Arrays;
import java.util.Collection;
import org.hamcrest.Matchers;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;
import org.junit.runners.Parameterized.Parameters;
@RunWith(Parameterized.class)
public class ParameterizedTest {
private final int min;
private final int max;
private final int current;
@Parameters
public static Collection<Object[]> data() {
return Arrays.asList(new Object[][] {
{ -1 , -10, -6 },
{ -2 , -11, -7 },
{ -3 , -12, -8 },
{ -4 , -13, -9 },
{ -5 , -14, -10 }
});
}
public ParameterizedTest(int current, int expectedMin, int expectedMax) {
this.current = current;
this.min = expectedMin;
this.max = expectedMax;
}
@Test
public void testName() throws Exception {
int yourNewValue = YourNormalizer.normalize(current);
assertThat(yourNewValue, both(greaterThan(min)).and(lessThanOrEqualTo(max)));
}
}
Я не знаю другого способа проверки данных.HF