Ответьте на этот вопрос: чего вы пытаетесь достичь с помощью теста? Проверить, что обновление работает без ошибок? Что вы каждый раз получаете новое удостоверение личности? Что таблица существует?
В зависимости от ответа, вы должны изменить свой тест. Если вы просто хотите знать, что синтаксис оператора правильный, вам не нужно ничего делать, кроме как запустить оператор (он выдаст исключение, если из-за ошибки произойдет сбой теста).
Если вы хотите убедиться, что каждый раз вы получаете новый идентификатор, вы должны запросить последовательность два раза и убедиться, что второе значение отличается от первого.
Если вы хотите проверить, что вставлена строка с новым уникальным идентификатором, просто запустите вставку и убедитесь, что она возвращает 1. Если это работает, вы будете знать, что первичный ключ (идентификатор) не был нарушен и что строка была вставлена. Следовательно, механизм «добавить с уникальным идентификатором» должен работать.
[EDIT] Нет способа протестировать триггер, который добавляет ID в новую строку, потому что у Oracle нет средств для возврата только что созданного идентификатора. Вы можете прочитать последовательность, но нет гарантии, что nextval-1
даст вам тот же результат, что и триггер.
Вы можете попробовать select max(ID)
, но это может не сработать, если кто-либо вставит другую строку и подтвердит ее, прежде чем вы сможете выполнить запрос (используя уровень транзакции по умолчанию READ_COMMITTED
).
Поэтому я настоятельно рекомендую избавиться от триггера и использовать стандартный двухшаговый алгоритм («получить новый идентификатор» плюс «вставить с новым идентификатором»), который кто-либо другой использует. Это сделает ваши тесты более простыми и менее хрупкими.