mjkim103301 / TroubleShooting

버그를 해결하는 과정을 문서화한 저장소 입니다.
0 stars 0 forks source link

[BUG][1] java.lang.IllegalStateException: REST Docs configuration not found. Did you forget to add a RestAssuredRestDocumentationConfigurer as a filter when building the RequestSpecification? [2] org.opentest4j.AssertionFailedError: expected:<[-119, 80, 78, ...] and 460974 more> but was:<[]> ,org.koin.core.error.NoBeanDefFoundException [3] NotRegisteredException #6

Open mjkim103301 opened 4 years ago

mjkim103301 commented 4 years ago

버그를 발견하게 된 과정 테스트 코드 수정하다가 given에 "this.spec" 에 빨간줄 생겨서 뺐더니 오류가 발생한 것 같음. java.lang.IllegalStateException: REST Docs configuration not found. Did you forget to add a RestAssuredRestDocumentationConfigurer as a filter when building the RequestSpecification? at org.springframework.util.Assert.state(Assert.java:94) image

image

버그의 원인 코루틴 스코프 내부라서 오류가 발생하는 것 같음. 코루틴 블럭을 설정하니까 this 가 CoroutineScope 가 되어버렸음.

문제해결을 위해 시도해본 방법들 .given(this.spec) -> .given(spec) 으로 수정

문제를 해결한 방법 위 방법으로 해결함.

새로운 오류 발생..

mjkim103301 commented 4 years ago

[2] org.opentest4j.AssertionFailedError: expected:<[-119, 80, 78, ...] and 460974 more> but was:<[]> ,org.koin.core.error.NoBeanDefFoundException

새로 발견한 오류

org.opentest4j.AssertionFailedError: expected:<[-119, 80, 78, 71, 13, 10, 26, 10, 0, 0, 0, 13, 73, 72, 68, 82, 0, 0, 8, 0, ...] and 460974 more> but was:<[]> image

org.koin.core.error.NoBeanDefFoundException


org.koin.core.error.NoBeanDefFoundException: No definition found for 'com.sia.tile.server.module.Cache' has been found. Check your module definitions.
    at org.koin.core.scope.Scope.findDefinition(Scope.kt:170)
    at org.koin.core.scope.Scope.resolveInstance(Scope.kt:164)
    at org.koin.core.scope.Scope.get(Scope.kt:128)
    at com.sia.tile.server.route.SaveToCacheRequestKt.saveTileToCache(SaveToCacheRequest.kt:306)
    at com.sia.tile.server.route.SaveToCacheRequestKt$requestSaveTileToCache$1$1.invokeSuspend(SaveToCacheRequest.kt:36)
    at com.sia.tile.server.route.SaveToCacheRequestKt$requestSaveTileToCache$1$1.invoke(SaveToCacheRequest.kt)

원인

아래 사진에서 module 을 modules( )로 감싸지 않았기 때문으로 보임. image

해결방법

modules() 로 감싸니까 해결됨. image

새로운 오류 발생함..

mjkim103301 commented 4 years ago

[3] NotRegisteredException

새로 발견한 오류

Exception in thread "ChannelSystem @coroutine#8" com.sia.core.infra.exception.NotRegisteredException


Exception in thread "ChannelSystem @coroutine#8" com.sia.core.infra.exception.NotRegisteredException: ReqRenderWithRange is not registered at StandaloneCoroutine
    at com.sia.core.infra.system.channel.CoroutineChannelSystem$request$$inlined$suspendCoroutine$lambda$1.invokeSuspend(CoroutineChannelSystem.kt:53)
    at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
    at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:56)
    at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
    at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
    at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304)
    at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130)
    at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:630)
    at java.base/java.lang.Thread.run(Thread.java:832)
### 원인 테스트 모듈 상에서 ReqRenderWithRange 가 서비스에 등록이 안되어있음. ### 시도한 방법 1. HttpTestExtention의 beforeAll() 에 CacheManageService(channelSystem).start(configManager) 를 등록함. -> 그런데 BasicRouteTest의 beforeEach() 부분보다 beforeAll() 이 먼저 실행되어서 beforeEach() 부분에 등록되어있던 캐시를 CacheManageService 에서 사용하지 못하는 오류 발생함. -> 그래서 beforeEach()부분의 startKoin()부분을 모두 beforeAll()로 가져옴. -> 목으로 등록해야하는 부분 등록해줌. ![image](https://user-images.githubusercontent.com/39117025/91257610-55017380-e7a5-11ea-883a-a932e54bf3c2.png) -> 개별 테스트는 성공하는데 테스트 전체를 한번에 돌릴 때는 Koin을 못찾는다는 오류가 뜸. 2. 위의 1방법을 고대로 BasicRouteTest로 옮겨서 해결함. ### 해결방법 2번 방법으로 해결함. ![image](https://user-images.githubusercontent.com/39117025/91267835-238da580-e7af-11ea-9e18-0250927e697d.png)