Archive for February, 2009
아이폰 프로젝트에 유닛테스트 추가하기
[옛날 블로그 글입니다. 2009.02.01]
[수정. 새 아이폰 SDK는 아이폰용 유닛 테스트를 직접 지원하고 있습니다. 이 글은 필요없어요 -_-;;]
네, 제목대로입니다. iPhone SDK 2.2 설치하시면 코코아용 프로젝트에 손쉽게 유닛테스트를 추가할 수 있도록 준비가 되어 있지만, 아이폰용 프로젝트에는 좀 수작업을 해줘야 하네요. 제 삽질을 공익의 차원으로 끌어올리고자 좀 정리해 봤습니다.
하지만 저는 맥 개발 경험이 거의 없어서, 이것이 제일 좋은 방법이다, 라고 자신은 못합니다. ^^;;
새 타겟 추가
유닛테스트용 빌드 타켓을 새로 추가합니다. 그림처럼 메뉴를 고르시고
Cocoa용 UnitTest Bundle 선택
넵, 일단은 코코아용이지만 골라주세요.
이름 넣기
프레임웍 바꾸기
네, 타겟 생성 마치시면 정보창 나오는데요, 아래 보이는 곳을 찾으셔서, -framework Cocoa 라고 되어 있는 걸 -framework Foundation으로 고치시면 됩니다.
코코아 헤더 없애기
조금 더 아래로 가면 그림에 보이는 설정값이 있는데요, 거기에 적힌 코코아 헤더 파일의 경로를 지우시면 됩니다.
액티브 타겟 바꾸기
방금 추가한 빌드 타겟을 골라줍니다. 빌드 시켰을 때 이 녀석을 빌드하라는 얘기죠.
유닛테스트 클래스 추가하기
이 상태에서 빌드하면 에러가 나고요, 유닛테스트 클래스를 넣어줘야 되는데요. 유닛테스트용 소스 코드 담을 그룹(폴더 아이콘) 만드시고, 거기다 대고 그림처럼 메뉴 고르세요.
Objective-C 테스트 케이스 클래스 선택
클래스 이름 넣기
클래스 이름 넣으시고요, 아래 보시면 타겟에 UnitTest 만 체크된 것이 중요합니다. 체크된 타겟이 빌드 될 때만 이 클래스가 같이 빌드된다는 의미에요.
타겟에 타겟 넣기
그림 보시면 Targets 트리 노드 아래에 WordMemorizer랑 UnitTest가 있지요. 여기서 WordMemorizer를 마우스로 드래그해다가 UnitTest안에 드랍시키면 됩니다. 그림은 이미 수행한 후의 상태입니다.
이 상태에서 UnitTest를 빌드시키면, WordMemorizer를 빌드하고, UnitTest를 빌드하고, UnitTest를 수행하고, 모든 유닛테스트가 성공하면 WordMemorizer의 결과물인 실행파일을 실행시킵니다. 편리해요.
유닛테스트 코드 작성
유닛테스트 코드를 어떻게 만들어야 되는지는 아래 링크 훑어보시면 됩니다.
http://developer.apple.com/documentation/developertools/Conceptual/UnitTesting/Articles/CreatingTests.html
마무리
XCode에서 에러 보여주는 방식 너무 좋네요. 개발툴에서도 인터랙션 디자인을 게을리 하지 않는 애플, 참 존경스럽습니다.
변변치 않지만 유익하셨기를~ ^^










