2014-10-07 3 views
5

У меня есть контроллер, который отвечает на вызовы REST, у меня есть различные тестовые примеры для других моих общедоступных методов.Весенний июньский тестовый пример для обслуживания отдыха контроллера

Я не знаю, как написать один для моего контроллера:

@RequestMapping(value = "/api/frames", method = RequestMethod.GET) 
public List<Frame> getFrames(
    @RequestParam(value="frameLength", required=true) Double frameLength, 
    @RequestParam(value="frameBreadth", required=true) Double frameBreadth, 
    @RequestParam(value="mountThickness", required=true) Double mountThickness, 
    @RequestParam(value="frameThickness", required=true) Double frameThickness){ 
    List<Frame> tempFrames = new ArrayList<>(); 
    List<FrameVariant> frameVariants = frameVariantService.getFrames(
     frameLength, frameBreadth, mountThickness, frameThickness); 
    for (FrameVariant frameVariant : frameVariants) { 
     tempFrames.add(new Frame(frameVariant)); 
    } 
    return tempFrames; 
    } 

Я понятия не имею, как написать тест для этого метода контроллера.

+0

Если честно, я не думаю, что модульное тестирование * этот * метод имеет большую ценность. Единственное, что вы действительно можете проверить, это то, что он правильно пересылает параметры функции 'getFrames', а затем преобразует каждый« FrameVariant »в« Frame ». И эта функция, и конструктор преобразования должны быть протестированы любым способом. Эта функциональность должна тестироваться как сквозное тестирование, т.е. развернуть эту службу (и «набор тестовых данных») и сделать фактические HTTP-запросы. – thecoshman

ответ

8

Посмотрите на MockMvc. Это часть модуля Spring Test.

These tutorials являются довольно подробными и подробными сведениями, поэтому вы должны сразу же получить представление о том, как тестировать контроллеры Spring MVC.

+0

@luboskmac, это нормально использовать mock mock для тестирования остального? –

+0

У вас есть возражения, почему это не так? С моей точки зрения, команда должна решить, что для них наиболее эффективное тестирование. http://stackoverflow.com/a/153565/1919879 – luboskrnac

0

This статья дает хорошее представление об испытаниях контроллеров REST с MockMvc. Пример кода для этого сообщения доступен на Github.

Смежные вопросы