我在 JUnit 中对相同的测试有不同的结果。第一个测试似乎没问题,为了验证所有断言,我相信该类工作正常。然后我重新运行测试,我得到一个断言失败。我意识到问题是我在测试后没有清除“数据”,我试图修复它,但我仍然遇到这些断言失败。
有任何想法吗?
单元测试:
import static org.junit.Assert.*;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
/**
* The test class TestHistorial.
*
* @author (your name)
* @version (a version number or a date)
*/
public class TestHistorial extends junit.framework.TestCase {
Historial hist;
/**
* Default constructor for test class TestHistorial
*/
public TestHistorial() {
}
/**
* Sets up the test fixture.
* <p/>
* Called before every test case method.
*/
@Before
public void setUp() {
hist = new BaseDatos();
}
/**
* Tears down the test fixture.
* <p/>
* Called after every test case method.
*/
@After
public void tearDown() {
hist.eliminarTodosLosRegistros();
}
/**
* Prueba
*/
public void testHistorial() {
for (int i = 0; i < 20; i++) {
Registro reg = new RegistroTemperatura(273 + i, 1900 + i, i + 1, i + 1, i);
try {
hist.agregarRegistro(reg);
} catch (Exception e) {
assertEquals(false, true);
} // No debería llegar aquí.
String str = "Reg_" + i;
Registro tReg = hist.getRegistroPorId(str);
try {
Temperatura t = new Temperatura(273 + i);
assertEquals(true, t.equals(((RegistroTemperatura) tReg).getTemperatura()));
} catch (Exception e1) {
assertEquals(false, true);
} // No debería llegar aquí.
try {
Fecha f = new Fecha(1900 + i, i + 1, i + 1, i);
assertEquals(true, f.equals(tReg.getFecha()));
} catch (Exception e2) {
assertEquals(false, true);
} // No debería llegar aquí.
}
assertEquals(20, hist.getNumeroDeRegistros());
assertEquals(true, hist.getRegistroMasViejo().equals(new RegistroTemperatura(273, 1900, 1, 1, 0)));
}
}
第一次测试后的测试输出是:
$> 预期:假但原为:真
真正的问题是,该tearDown()
方法是在 `testHistorial()` 之后执行的吗?如果不是,我该怎么做?