Тестирование синхронизированного метода / блоков весной - PullRequest
0 голосов
/ 20 марта 2020

У меня есть следующий метод:

@Transactional
@Override
public Ticket buyTicketFor(String user) {
    Ticket ticket = null;

    synchronized (MUTEX) {
        List<Ticket> availableTickets = ticketRepo.findAllTickets();
        Collections.shuffle(availableTickets);
        ticket = availableTickets.get(0);
    }

    return ticket;
}

Я хочу создать тест, который позволит мне тестировать двух пользователей, получающих два билета, но они не должны одновременно обращаться к БД. Как я могу создать тест, чтобы позволить мне сделать это. Я хотел использовать mockito и junit 5, но я думаю, что это будет возможно только с помощью интеграционного тестирования, где я раскручиваю реальный сервер и БД.

...