OCUnit은 Cocoa/Cocoa touch용 유닛 테스트 도구이다.
unit test용 bundle을 추가한 후, test 메소드를 몇 개 추가하여 간단하게 유닛테스트를 수행할 수 있다.
Cocoa에서는 간단하게 사용할 수 있으나 Cocoa touch(iPhone OS 2.2 / 2.2.1)에서는 제대로 동작하지 않아서 설정값 몇 개를 변경해 주어야 한다. iPhone OS 3.0에서는 제대로 동작하기를...
OCUnit을 사용하는 법은 다음과 같다.
1. 새로운 target을 추가한다.
2. Cocoa / Unit Test Bundle 을 선택하여 추가한다. 적절한 Target Name을 입력한 후 Finish 버튼을 누르면 Unit Test Bundle이 추가된다.
3. 새로 추가된 Unit Test Bundle의 Info 창을 연다.(iPhone OS 2.2 / 2.2.1(이하 iPhone OS)관련 내용)
4. Build tab에서, User-Defined Settings’ 과 ‘Other Linker Flags' 항목을 삭제한다.(iPhone OS 관련 내용)
5. General 탭의 'Linked Library' 란에 다음 경로의 프레임웍을 추가한다: /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator2.2.sdk/Developer/Library/Frameworks/SenTestingKit.framework (iPhone OS 관련내용)
6. 기존 Application target의 Info 창을 연 후에, 'Direct dependencies' 란에 생성한 Unit test bundle을 추가한다. Application 빌드 시에 Unit Test bundle도 같이 빌드되도록 하여 , test bundle을 빌드하기 위해 Active Target을 바꿀 필요가 없도록 하기 위한 작업!
7. Unit Test target에 다음과 같이 필요한 framework을 추가한다. Foundation.framework은 기본적으로 추가하는 것이 좋다.
8. Unit Test target에 다음과 같이 Objective-C test class 를 추가한다.
9. 추가한 testcase class(여기서는 UnitTest.m)를 열고 다음과 같이 testSample 메소드를 추가한 후 빌드한다. 모든 유닛 테스트 메소드(testSample과 같은)가 성공한 경우에는 'Build succeeded' 메시지가 나온다. OCUnit에서는
테스트 케이스 실행 = 빌드 인 것이다.
10. test가 실패한 경우에는 다음과 같이 에러메시지가 뜬다.
유닛 테스트 실패 = 빌드 에러 인 것이다. 빌드만으로 유닛 테스트를 실행시킬 수 있어서 킹왕짱 편리하다.
11. test case에 다음과 같이 추가하여 시뮬레이터 상에서만 테스트가 실행되도록 한다.
p.s)
1. 참고 URL
http://www.sente.ch/s/?p=535&lang=en
2. OCUnit 관련 정보. 사용할 수 있는 assert 목록 등의 유용한 정보가 들어 있다.
http://developer.apple.com/mac/articles/tools/unittestingwithxcode3.html
Trackback Address :: http://www.dreamjr.org/tt/trackback/107