У меня есть класс junit testCase с несколькими методами тестирования (как требование, мы не хотим создавать отдельный класс для каждого теста.)
Я хочу создать метод типа tearDown
для КАЖДОГО метода теста, который будет запускаться специально для этого теста. Не для ВСЕХ испытаний.
Моя проблема в том, что во многих тестах я вставляю запись в базу данных, проверяю ее и удаляю после проверки.
Но, если тест не пройден в середине пути, контроль не доходит до конца, моя фиктивная запись не удаляется.
Я думаю, что только ОДИН tearDown()
разрешен для одного класса, и эти tearDown()
не знают, какой объект / запись я создал или вставил и что удалить !!!
Я хочу создать метод tearDown()
или @After
только для одного конкретного теста. Что-то вроде finally{}
в Java для каждого метода.
Например:
public class TestDummy extends TestCase {
public void testSample1(){
InsertSomeData1();
assertFalse(true);
runTearDown1();
}
public void testSample2(){
InsertSomeData2();
assertFalse(true);
runTearDown2();
}
public void runTearDown1(){
deleteDummyDatafromTestSample1....
}
public void runTearDown2(){
deleteDummyDatafromTestSample2....
}
}
Здесь управление никогда не перейдет к runTearDown1()
или runTearDown2()
, и у меня нет ни одного распространенного tearDown()
, потому что он не будет знать, какие данные я вставил и какие специфичны для каждого метода.