테스트

Mockito에서 Multi-Stubbing 적용하기

Overview 팀에서 초기부터 Junit5를 적용하다보니, MockitoExtension을 제대로 제공받지(?) 못했다. 그래서 오픈소스로 공개되어 있던 것 중에 하나를 그냥 복사해서 프로젝트내에 class를 두고 사용했다. 그러다가 최근에 SpringBoot에서 Junit5를 지원1 해주는 김에 SpringBoot로 의존성 관리하도록 바꿨다. 그랬더니 자연스럽게 Mockito 버전도 올라가고, MockitoExtension이 제공되고… 더 보기 »Mockito에서 Multi-Stubbing 적용하기

@SpringBootTest + mockMvc vs @WebMvcTest

테스트를 작성하려고 했더니, 아래와 같은 오류가 발생했다.

처음에는 왜 Bean을 인식하지 못하는지, 해당 Bean의 선언과 Configuration에서 Bean Scan Scope를 확인했는데 모두 정상이었다. 나중에 알게된 사실1 인데, 같이 일하는 사람과 서로 테스트의 방식이 달랐던 것이다. 평상시에 내가 제일 즐겨하는 controller… 더 보기 »@SpringBootTest + mockMvc vs @WebMvcTest

java.lang.NoClassDefFoundError: org/mockito/mock/MockName

powermock을 적용하는데 위와 같은 에러가 발생했다. 처음에는 powermock을 잘못 사용한 줄 알고 이래저래 삽질을 많이 했는데… https://code.google.com/p/powermock/wiki/MockitoUsage13 위 글에 확인하면 mockito와 powermock 끼리 서로 지원되는 버전이 달랐다. mockito는 1.9.0을 사용했는데, powermock은 1.5버전을 사용해서 생긴 문제. 버전을 호환되는 것으로 맞추니 해결되었다.… 더 보기 »java.lang.NoClassDefFoundError: org/mockito/mock/MockName

enum에서 test coverage 100% 안 됨

자바에서 enum class에 대한 테스트를 모두 해도 100%가 나오지 않는다. (class의 LOC에 따라서 %가 유동적으로 변한다) 그 이유는 enumeration 에서 자동으로 생성하는 hidden byte code가 있기 때문이다. values(), valueOf() 두 가지 메소드를 실행시키면 비로소 coverage 100% 달성된다. 물론, 별 쓰잘데기… 더 보기 »enum에서 test coverage 100% 안 됨