Я хочу сделать тест партии, как в следующем, однако, если есть ошибка, это не говорит мне, какое значение i
происходит ошибка.Как выполнить те же тесты с несколькими входами?
@Test
public void simpleMovingAverageBatch() {
for (int i = 1; i < 61; ++i) {
simpleMovingAverage(i);
}
}
public void simpleMovingAverage(int days) {
double sma = -1;
int size = stock.getCloses().size();
stock.calcSMA(days); // <- code that I'm testing
// first days should be -1
for (int index = size - 1; index >= size - days + 1; --index) {
assertEquals(-1, stock.getSMA(days, index), 0.001);
}
for (int index = size - days - 1; index >= 0; --index) {
sma = 0.0;
for (int i = 0; i < days; ++i) {
sma += stock.getCloses().get(index + i);
}
sma /= days;
assertEquals(sma, stock.getSMA(days, index), 0.001);
}
}
Это пример того, что произойдет, если я запустить код как:
Это пример того, что я хочу, чтобы произошло:
Я ознакомился с параметризованными тестами in this tutorial, однако я не знаю, должен ли это маршрут, который я хочу принять.
Любые советы?
Я не думаю, что этот вопрос является дубликатом из них:
Running the same JUnit test case multiple time with different data
Java unit test for different input data
Как ваш вопрос отличается от первой с которым вы связались? – Jeffrey
Почему вы просто не используете assertEquals с сообщением перед ним? Он не произведет изображение, которое вы хотите, но сообщит вам, какая «я» произвела ошибку. Например: assertEquals («Это i:« + i, -1, stock.getSMA (дни, индекс), 0,001); – ap0calypt1c
Возможный дубликат [не допускать остановки теста при сбое] (http://stackoverflow.com/questions/30729112/dont-let-test-stop-on-failure) – kryger