Как перехватить и обработать в нарушении теста ограничения Java (сбой ограничения FOREIGN KEY) - PullRequest
1 голос
/ 30 июня 2019

Как перехватить и обработать в нарушении ограничения теста Java (сбой ограничения FOREIGN KEY).У меня есть база данных, там я установил ограничение на удаление записи.Во время теста ограничение срабатывает и завершает тест.Соответственно, тест не прошел.Как сделать так, чтобы при выдаче сообщения о запрете на удаление тест проходил

 try {
    new RowName.delete(new RowName.get(1));
    // constraint is triggered when deleting
} catch (Exception e) {
   ??????????
}

org.sqlite.SQLiteException: [SQLITE_CONSTRAINT] Прервать из-за нарушения ограничения (ограничение FOREIGN KEY не выполнено)

1 Ответ

1 голос
/ 30 июня 2019

Я не на 100% уверен, что это то, что вы просите, но здесь мы идем:

try {
    new RowName.delete(new RowName.get(1));
    fail("It should not be possible to call .delete. DB should throw an exception since this is a violation of a constraint.");
} catch (org.sqlite.SQLiteException e) {
    // Just continue. We expect an SQLiteException since the test data has a 
    // constraint that forbids the .delete.
}
// Any other exception that is thrown will cause the test to fail which
// is what we want. The SQLiteException is expected since you forced it
// to happen. Other exceptions have to be examined and handled.

Так что, если .delete не в порядке и, следовательно, БД выдает исключение, ваш тест пройдет. Но если .delete проходит, что-то не так с вашей базой данных или вашими тестовыми данными, а затем сбой ("...") приведет к сбою вашего тестового примера.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...