Я пытаюсь написать несколько модульных тестов для моих контроллеров в веб-приложении Spring MVC. У меня уже есть достаточно полный набор модульных тестов для модели предметной области, но для полноты картины я тоже хочу протестировать контроллеры.
Проблема, с которой я сталкиваюсь, состоит в том, чтобы попытаться проверить их без загрузки контекста Spring. Я думал, что смогу обойти это с помощью насмешек, но метод в контроллере имеет аннотацию @Transactional, которая пытается открыть транзакцию (и завершается неудачно с NullPointerException, потому что не загружен контекст Spring).
Пример кода:
public class UsersController {
@Autowired private UserManager userManager;
@Transactional
@RequestMapping(method = RequestMethod.POST)
public ModelAndView create(User user) {
userManager.save(user);
ModalAndView mav = new ModelAndView();
mav.addObject("user", user);
mav.setViewName("users/view");
return mav;
}
}
По сути, я хочу протестировать поведение без загрузки контекста и фактического сохранения пользователя.
У кого-нибудь есть идеи, как мне этого добиться?
Приветствия
Caps