【发布时间】:2015-07-28 21:57:39
【问题描述】:
我想做一个像下面这样的批量测试,但是如果有错误,它不会告诉我错误发生在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);
}
}
这是一个例子,如果我按原样运行代码会发生什么:
这是我想要发生的事情的一个例子:
我已经查看了 Parameterized Tests in this tutorial,但是我不知道这是否是我想要采取的路线。
有什么建议吗?
我不认为这个问题与这些问题重复:
Running the same JUnit test case multiple time with different data
【问题讨论】:
-
您的问题与您链接的第一个问题有何不同?
-
为什么你只是 don
t use assertEquals with message in front of it? It wont 产生你想要的图片,但会告诉你哪个“我”产生了错误。例如:assertEquals("This is i:" + i ,-1, stock.getSMA(days, index), 0.001);