Как я могу проверить логику транзакции базы данных? - PullRequest
3 голосов
/ 25 сентября 2011

Я часто нахожу, что обработка ошибок - одна из самых сложных вещей для тестирования. К счастью, с внедрением зависимостей и фреймворками это становится намного проще.

Однако мне все еще не удается проверить объекты доступа к данным, особенно аспекты обработки ошибок и отката. Предположим, у меня есть два запроса в методе DAO, например:

INSERT INTO A(AID, AVAL)
VALUES (1, 'TEST');

INSERT INTO B(AID, BVAL)
VALUES (1, 'TEST');

И я хочу, чтобы логика транзакций была реализована в управлении транзакциями Spring, чтобы при вставке в B вставка в A откатывалась.

Как я могу это проверить?

1 Ответ

3 голосов
/ 25 сентября 2011

Имеется два DAO (конечно, на основе интерфейса):

public interface GenericDao<T, K extends Serializable> {
    public T find(K key);
    public List<T> find();
    public K save(T value);
    public void update(T value);
    public void delete(T value);
}

GenericDao<B> высмеивается, чтобы выбросить RuntimeException из его метода сохранения. Вы должны увидеть, как менеджер транзакций Spring откатил транзакцию.

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