Java Spring控制器断点和JUnit
我有一个带有Junit测试的SpringREST应用程序。我在Eclipse中运行应用程序并启动测试。如果我在Junit类中设置断点,它会正常工作并停止执行,但是如果我直接在被调用的控制器中设置断点,则不会发生任何事情。 我做错了什么Java Spring控制器断点和JUnit,java,spring,junit,Java,Spring,Junit,我有一个带有Junit测试的SpringREST应用程序。我在Eclipse中运行应用程序并启动测试。如果我在Junit类中设置断点,它会正常工作并停止执行,但是如果我直接在被调用的控制器中设置断点,则不会发生任何事情。 我做错了什么 @Test public void testAddVideoData() throws Exception { Video received = videoSvc.addVideo(video); VideoStatus status = vide
@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;
}
由于应用程序和测试在两个不同的JVM中运行,您必须(使用Eclipse):
- 对于测试:“作为Java应用程序运行”
- 对于应用程序:“作为Java应用程序进行调试”,在需要时设置断点