티스토리 뷰
TDD 코드를 작성하는데, Private 메소드는 아주 귀찮은 존재입니다.
잠시 public 으로 바꿔서 테스트 하거나 또는 리플렉션을 사용하여 실행 시키는 방법등이 있는데, 여러가지로 피곤함을 가중시켜요.
그러나 이런 문제를 해결하기 위한 PowerMock 과 같은 도구가 있습니다!!
https://code.google.com/p/powermock/
하지만, Android 테스트에서 Robolectric 과 Mockito 를 사용하는데, 여기다가 PowerMock 까지 붙이면 Exception 을 뿜으며 문제가 생기네요.
(혹시 문제 해결책을 아시는 분 있으면 알려주십쇼..ㅠㅠ)
어쨌든 위와 같은 문제를 해결 하느라 약간의 삽질을 하다가, 허접하게 나마 아래와 같이 좀 더 편하게 private 메소드를 실행시킬 수 있는 코드를 짜봤는데요,
이 것을 이용하면 private 메소드에 대하여 그럭저럭 테스트는 진행할 수 있습니다.
다만, 아직 null 인자값을 받을 수 없고, 가변 인자값도 사용할 수 없습니다.
이 문제가 개선되는 대로 업데이트 할 것입니다.
사용 방법.
// 인자값이 없는 static 메소드. // 메소드의 반환 값이 없을 경우 null 을 반환. Object 반환값 = invokeStatic(클래스.class, "메소드명"); // 인자값이 있는 static 메소드. Object 반환값 = invokeStatic(클래스.class, "메소드명", 인자값1, 인자값2... ); // 인자값이 없는 메소드. Object 반환값 = invoke(객체, "메소드명"); // 인자값이 있는 메소드 Object 반환값 = invoke(객체, "메소드명", 인자값1, 인자값2... );
'개발 관련 > 개인 자료' 카테고리의 다른 글
[JAVA] 간단한 일회성 JSON 데이터를 만들기 귀찮을 때... (1) | 2015.12.03 |
---|---|
안드로이드에서 현재 Task 에 있는 Activity 인스턴스 가져오기. (0) | 2014.07.13 |
안드로이드에서 시리얼 블루투스 디바이스 통신을 쉽게 하기 위한 클라이언트 클래스. (5) | 2014.06.22 |
[Java] 간단한 랜덤 문자열 만드는 클래스. (0) | 2013.08.02 |
- Total
- Today
- Yesterday
- 침블락
- 개발
- 안드로이드 개발
- 안드로이드
- 블루투스
- 부트로더
- 이더넷
- 스마트 무드등
- NeoPixel
- bluetooth
- ATtiny85
- HC-06
- arduino
- 알리익스프레스
- noidemcu
- 병렬 프로그래밍
- 아두이노
- ENC28J60
- 가습기
- json
- activity
- Android
- Iot
- oled
- WS2812B
- Cheapduino
- ndk
- 칩두이노
- ESP8266
- Java
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |