콘텐츠로 건너뛰기

powermock

PowerMock 예제

예전에 PowerMock사용법(final class의 테스트)라는 제목으로 블로깅을 한 적 있다. 그게 2011년 7월이니까 근 6년 가까이 PowerMock을 사용할 일이 생기지 않았다. 단순히 SpringRunner나 Mockito만으로도 충분한 테스트를 만들 수 있었다. 그런데 최근에 작업중인 프로젝트에서 시간에 의존하는 테스트가 존재했다. 그래서 평소에는 Ignore시키고 있다가… 더 보기 »PowerMock 예제

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

PowerMock 사용시 오류 수정

static method에 대한 테스트 방법은 power mock을 사용하면 된다. 하지만 테스트를 진행하려 하니 power mock에서 exception을 발생시킨다.

구글링으로 찾아봤더니 대략 이런 문서가 나온다. (참고) 요약하면, javassist 라이브러리를 power mock에서 사용하게 되는데.. 그 라이브러리에 버그가 있어서 3.6버전에서 문제가 있어서 3.12GA버전에서는 해결됐다.… 더 보기 »PowerMock 사용시 오류 수정

power mock 사용법 (final class의 테스트)

mockito에서 final class에 대한 mock은 생성이 불가능하다. 예를 들면, shindig library에서 HttpResponse.java가 있는데.. public HttpResponse() {} HttpResponse(HttpResponseBuilder builder) { … } private HttpResponse(int httpStatusCode, String body) { … } public HttpResponse(String body) { this(SC_OK, body); } 위 클래스는 final 클래스이고,… 더 보기 »power mock 사용법 (final class의 테스트)