강의

멘토링

로드맵

Inflearn brand logo image

인프런 커뮤니티 질문&답변

yello9님의 프로필 이미지
yello9

작성한 질문수

스프링 기반 REST API 개발

섹션2 201응답받기 부분 테스트 404에러 질문입니다

작성

·

704

0

스크린샷 2023-10-12 115354.png

스크린샷 2023-10-12 115434.png

위, 아래의 사진은 수업에서 진행한 EventConroller, EventControllerTests의 전문입니다.

테스트하면 아래의 에러메세지가 나옵니다 수업과 같이 진행했는데 왜 발생하는지를 모르겠습니다 도와주세요

Java HotSpot(TM) 64-Bit Server VM warning: Sharing is only supported for boot loader classes because bootstrap classpath has been appended

MockHttpServletRequest:

HTTP Method = POST

Request URI = /api/events/

Parameters = {}

Headers = [Content-Type:"application/json;charset=UTF-8", Accept:"application/hal+json"]

Body = null

Session Attrs = {}

Handler:

Type = org.springframework.web.servlet.resource.ResourceHttpRequestHandler

Async:

Async started = false

Async result = null

Resolved Exception:

Type = null

ModelAndView:

View name = null

View = null

Model = null

FlashMap:

Attributes = null

MockHttpServletResponse:

Status = 404

Error message = null

Headers = [Vary:"Origin", "Access-Control-Request-Method", "Access-Control-Request-Headers"]

Content type = null

Body =

Forwarded URL = null

Redirected URL = null

Cookies = []

java.lang.AssertionError: Status

Expected :201

Actual :404

<Click to see difference>

at org.springframework.test.util.AssertionErrors.fail(AssertionErrors.java:59)

at org.springframework.test.util.AssertionErrors.assertEquals(AssertionErrors.java:122)

at org.springframework.test.web.servlet.result.StatusResultMatchers.lambda$matcher$9(StatusResultMatchers.java:637)

at org.springframework.test.web.servlet.MockMvc$1.andExpect(MockMvc.java:214)

at me.gang.demorestapi.events.EventControllerTests.createEvent(EventControllerTests.java:31)

at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)

at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

at java.base/java.lang.reflect.Method.invoke(Method.java:568)

at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:59)

at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)

at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:56)

at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)

at org.springframework.test.context.junit4.statements.RunBeforeTestExecutionCallbacks.evaluate(RunBeforeTestExecutionCallbacks.java:76)

at org.springframework.test.context.junit4.statements.RunAfterTestExecutionCallbacks.evaluate(RunAfterTestExecutionCallbacks.java:84)

at org.springframework.test.context.junit4.statements.RunBeforeTestMethodCallbacks.evaluate(RunBeforeTestMethodCallbacks.java:75)

at org.springframework.test.context.junit4.statements.RunAfterTestMethodCallbacks.evaluate(RunAfterTestMethodCallbacks.java:86)

at org.springframework.test.context.junit4.statements.SpringRepeat.evaluate(SpringRepeat.java:84)

at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:366)

at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:252)

at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:97)

at org.junit.runners.ParentRunner$4.run(ParentRunner.java:331)

at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:79)

at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:329)

at org.junit.runners.ParentRunner.access$100(ParentRunner.java:66)

at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:293)

at org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate(RunBeforeTestClassCallbacks.java:61)

at org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate(RunAfterTestClassCallbacks.java:70)

at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)

at org.junit.runners.ParentRunner.run(ParentRunner.java:413)

at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:191)

at org.junit.runner.JUnitCore.run(JUnitCore.java:137)

at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:69)

at com.intellij.rt.junit.IdeaTestRunner$Repeater$1.execute(IdeaTestRunner.java:38)

at com.intellij.rt.execution.junit.TestsRepeater.repeat(TestsRepeater.java:11)

at com.intellij.rt.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:35)

at com.intellij.rt.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:232)

at com.intellij.rt.junit.JUnitStarter.main(JUnitStarter.java:55)

 

 

답변 1

0

안녕하세요, 인프런 AI 인턴이에요. 해당 질문에 대한 답변을 드리겠습니다.

에러 메시지를 보면 상태 코드가 404로 나오고 있습니다. 이는 클라이언트가 요청한 리소스를 찾을 수 없다는 뜻입니다. 따라서 해당 요청에 매핑된 URL이나 컨트롤러를 확인해보셔야 합니다.

가능한 원인은 다음과 같을 수 있습니다.
1. URL이 잘못되었을 수 있습니다. “/api/events/“과 요청한 URL이 정확히 일치하는지 확인해보세요.
2. 컨트롤러에 요청을 처리할 메소드가 정의되어 있지 않거나, 설정에 문제가 있는 경우입니다. EventController에 대한 메소드가 존재하는지 확인해보세요.
3. 요청에 필요한 데이터가 누락되었을 수 있습니다. 요청 바디에 필요한 데이터를 넣지 않았거나, Content-Type을 정확히 설정하지 않은 경우가 있을 수 있습니다.
4. 서버의 설정 문제일 수도 있습니다. 스프링 부트의 설정이나 프로젝트의 의존성 등을 확인해보세요.

위의 내용을 확인해보시고 문제를 해결해보세요. 추가적인 질문이 있으시면 언제든지 물어보세요. 좋은 결과가 있기를 바라요.

yello9님의 프로필 이미지
yello9

작성한 질문수

질문하기