1. Target 생성

Application Test는 Logic Test와는 달리 실제로 실행을 하기때문에, Executable Target을 필요로 합니다.
아래와 같이 기존의 Executable Target을 Duplicate하여 원래 프로그램의 설정그대로 실행할수 있는 Target을 생성합니다.


이때, Target의 이름에 규칙이 있습니다. 그것은 '<application_name>' Testing 입니다.
prefix는 기호에 따라서 아무렇게 써도 상관이 없지만, suffix는 Testing이 되어야합니다.

2. iPhone Unit-test Bundle 생성

Logic Test와 마찬가지로, Unit-Test Bundle을 생성해주어야합니다.
단, Executable Target과 연동하는 부분이 Logic Test를 위한 bundle을 생성하는것과는 차이가 있습니다.

지난 포스팅을 참조하여, Unit-Test Bundle을 생성한후, 아래와 같이  <blah>Testing Target에 dependancy를 설정합니다.


그리고, MyAppTests를 build하면 나오는 MyAppTest.ocutest Binary를 <blah>Testing Executable Target의 Copy Bundle Resource로 등록해줍니다.

자 이제 Target & Bundle 생성 및 Dependay 설정이 완료 되었습니다.

3. TestCase 작성

LogicTest와 마찬가지로, Objective-C TestCase Class 파일을 생성합니다.
이때 Target Owrnership은 Executable Target이 아닌 Test Bundle이어야 합니다.


4. 실행

Application Test는 Device에서만 동작합니다.
Build Target을 Device 3.0 or Later로 설정을 한후 실행을 하면 Debugger Console 창에서 결과를 확인할수 있습니다.

기본적으로 AppDelegate 를 가져와서, AppDelegate Object가 nil 인지 아닌지 체크를 하는 테스트가 들어 있습니다.

실행 결과는 다음과 같습니다.


만약 Console창에 위와 같은 메세지가 나오지 않는다면, Target Dependancy 부분을 다시 한번 확인해보시기 바랍니다.


요새 개발하고 있는 Application이 SQLite를 사용하고 있습니다.
SQLite Interface Module을 OCUnit Test를 이용하여, TDD로 개발하였고, 1차 완료 하였습니다.
아직 익숙하지 않은 탓에 오히려 시간이 많이 걸리는것 같다는 느낌을 받고 있지만, 확실히
TestCase가 미리 작성된 탓에, API사용자 입장을 고려하여, Module을 Design 할 수 있어,
개발 초기 부터 단단한 프로그래밍이 가능해졌습니다.

다음에 Writing TestCase라는 주제를 끝으로 OCUnit 을 통한 Unit Test에 대한 글을 마치려고 합니다.



+ Recent posts