Как мне проверить метод обслуживания, который является транзакционным для его одновременного использования (он обновляет строку базы данных, уменьшая значение)?
Я установил тестовый класс JUnit с SpringJunit4ClassRunner, и компоненты @ autowired.
Просто порождение потоков, которые будут вызывать метод, похоже, не работает. Я не уверен, что это как-то связано с механизмом прокси Spring.
Чего я хотел бы добиться, так это создать ситуацию, когда два потока будут «внутри» тестируемого метода, а другой потерпит неудачу и произойдет откат. например Значение строки равно 3, и оба вызова метода пытаются уменьшить значение на 2; если метод не будет работать, значение будет -1, что недопустимо. Но я хочу, чтобы либо оба вызова потерпели неудачу и откат, либо произошел сбой того, который пытается обновить его на мгновение позже, чем другой.
Возможно ли это вообще?