Java Точка останова контроллера Spring и JUnit - PullRequest
1 голос
/ 20 января 2020

У меня есть приложение Spring REST с тестами Junit. Я запускаю приложение в Eclipse и запускаю тесты. Если я устанавливаю точки останова в классе Junit, он работает нормально и останавливает выполнение, но если я устанавливаю точки останова непосредственно в вызываемом контроллере, ничего не происходит. Что я делаю не так?

@Test
public void testAddVideoData() throws Exception {
    Video received = videoSvc.addVideo(video);
    VideoStatus status = videoSvc.setVideoData(received.getId(),
            new TypedFile(received.getContentType(), testVideoData));
    assertEquals(VideoState.READY, status.getState());

    Response response = videoSvc.getData(received.getId());
    assertEquals(200, response.getStatus());

    InputStream videoData = response.getBody().in();
    byte[] originalFile = IOUtils.toByteArray(new FileInputStream(testVideoData));
    byte[] retrievedFile = IOUtils.toByteArray(videoData);
    assertTrue(Arrays.equals(originalFile, retrievedFile));
}

и это метод, который я хочу установить точку останова:

@RequestMapping(value = "/video/{id}/data" , method = RequestMethod.POST)
public @ResponseBody VideoStatus addVideoData(AtomicLong id, @RequestParam("data")
MultipartFile videoData) {

    VideoStatus videoStatus= new VideoStatus(VideoState.PROCESSING);


    try {
        videoDataMgr = VideoFileManager.get();
        Video video = videos.get(id);

        if(!videoDataMgr.hasVideoData(video)) {
            InputStream in = videoData.getInputStream();
            videoDataMgr.saveVideoData(video, in);
        }
        videoStatus.setState(VideoState.READY);


    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

    // SAVE IT TO DISK

    return videoStatus;

}

1 Ответ

1 голос
/ 23 января 2020

Поскольку приложение и тесты выполняются в 2 разных JVM, вы должны (используя Eclipse):

  • для тестов: "запускается как Java Приложение"
  • для приложения : "debug as Java Application", установка точек останова в любое время.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...