Objective-C 코드를 단위 테스트하는 가장 좋은 방법은 무엇입니까?
-
09-06-2019 - |
문제
Objective-C 코드 단위 테스트에 어떤 프레임 워크가 있습니까?Apple Xcode와 잘 통합되는 프레임 워크를 원합니다.
해결책
Xcode에는 Objective-C 단위 테스트 프레임 워크 인 OCUnit 과 유사한 XCTest가 포함되어 있습니다. 이며 프로젝트 빌드 프로세스의 일부로 XCTest 기반 단위 테스트 실행을 완벽하게 지원합니다. Xcode의 단위 테스트 지원은 Xcode 개요 : 단위 사용에 설명되어 있습니다. 테스트 .
Xcode 2 일 동안 Xcode 단위 테스트로 몇 가지 일반적인 작업을 수행하는 방법에 대한 일련의 웹 로그 게시물을 작성했습니다.
- Cocoa 프레임 워크 단위 테스트
- Cocoa 프레임 워크 단위 테스트 디버깅
- Cocoa 애플리케이션 단위 테스트
- Cocoa 애플리케이션 단위 테스트 디버깅
XCTest가 아닌 OCUnit을 사용하지만 개념은 거의 동일합니다.
마지막으로 Cocoa 사용자 인터페이스에 대한 테스트를 작성하는 방법에 대한 몇 가지 게시물을 작성했습니다. Cocoa가 구조화 된 방식은 대부분의 경우 이벤트 루프 또는 이와 유사한 것을 회전 할 필요가 없기 때문에 비교적 간단합니다.
- 신뢰하되 확인합니다.
- Cocoa 사용자 인터페이스 단위 테스트 : Target-Action
- Cocoa 사용자 인터페이스 단위 테스트 : Cocoa 바인딩
이를 통해 모델 수준 코드뿐만 아니라 컨트롤러 수준 및보기 수준 코드까지 테스트 기반 개발을 수행 할 수 있습니다.
다른 팁
Gabriel Handford의 GHUnit 을 확인하세요. <인용구>
"GHUnit의 목표는 다음과 같습니다.
XCode 내에서 단위 테스트를 실행하여 당신은 XCode를 완전히 활용하기 위해 디버거.도움이되는 간단한 GUI 테스트를 시각화하십시오.스택 표시 흔적.프레임 워크로 설치 가능 (Cocoa 앱의 경우) 간단한 (또는 아님) 목표 설정;또는 쉽게 포장 iPhone 프로젝트에. "
iPhone 용 Google 도구 상자 테스트 장비를 사용하기 시작했고 그 장비가 잘 작동했습니다.
Google Toolbox for Mac (GTM) 프로젝트는 Apple의 SenTestingKit 프레임 워크 (즉, 자체적으로 OCUnit를 기반으로 함)를 확장 / 증가합니다. 프로젝트 사이트에서 말한대로 : <인용구>
GTM은 표준 SenTestingKit를 사용하면 UI 단위 테스트, 자동화 된 바인딩 수행 단위 테스트, 로그 추적 및 단위 iPhone에서 테스트하고 정적 및 동적 작업을위한 도구 코드 테스트
사용자 인터페이스 테스트에 대한 다음 의견을 참고하세요. <인용구>
GTM은 사용자를 광범위하게 지원합니다. 인터페이스 단위 테스트. 그것은 지원합니다 이미징 및 / 또는 거의 모든 내부 상태 표준 Cocoa / UIKit UI 객체 이것을 확장하기 쉽게 자신의 UI 개체를 지원합니다.
" 코드 확인 및 단위 테스트 참조 사용 방법에 대한 지침은 "페이지를 참조하십시오.
GHUnit이 Objective-C를위한 가장 진보 된 테스트 프레임 워크라는 결론에 도달했습니다. 라운드 업 내 블로그의 테스트 프레임 워크입니다.배포 (iphone, 시뮬레이터 또는 Mac OS 기본) 측면에서 가장 유연하고 기능을 주장합니다.GTM을 기반으로하기 때문에 SenTestingKit에 비해 GTM의 모든 장점을 계승 할뿐만 아니라 더 많은 것을 추가합니다.또 다른 보너스는 매우 적극적으로 유지되고 있다는 것입니다.
OCMock 을 GHUnit에 통합하기 위해 노력했습니다. 훌륭하게 작동합니다!. github 에서 코드를받을 수 있습니다.
이게 오래된 질문이라는 것을 알고 있지만, xUnit 스타일 테스트 (Test :: Unit, JSUnit, JUnit 등)보다 BDD 스타일 테스트 (rspec, Jasmine 등)를 선호한다면 고려할 수 있습니다. Cedar 를 확인하세요.Cedar는 BDD 스타일 테스트를 Objective-C로 가져 왔으며 이제 언어가 클로저를 지원합니다.
Pivotal Labs 에서 iOS 프로젝트에 Cedar를 사용하고 있으며이를 개선하기 위해 적극적으로 노력하고 있습니다.의견이나 제안은 cedar-discuss@googlegroups.com 에서 환영합니다.
gh-unit을 추천합니다. 테스트 결과를위한 멋진 GUI가 있습니다.
단위 테스트 지원 번들xcode 내에서 (간단한 설정) ocrunner (일부 자동 테스트 / Growl의 장점을 위해)는 현재 제가 가장 좋아하는 Obj-C 단위 테스트 설정입니다.
여기에 많은 것들이 있습니다.
Sen : te (Xcode에 포함 된 테스트 프레임 워크의 제작자)는 iPhone 프로젝트에서 OCUnit을 사용하는 방법을 설명합니다. simple-iphone-ipad-unit-test .
Cocoa with Love의 Matt Gallagher는 매우 좋은 기사 단위 테스트
iOS 용 오픈 소스 BDD 테스트 프레임 워크 인 Kiwi를 살펴 보는 것이 좋습니다. 키위
프로젝트의 WIKI를 확인하여 Daniel Steinberg의 저서 "Test Driving iOS Development with Kiwi"를 시작하거나 받으십시오. test-driving-ios-development
iPhone 및 iPad libs에서 작동하는 SimpleUnitTest를 사용합니다.
http://cbess.blogspot.com/2010/05/simple-iphone-ipad-unit-test.html
단위 테스트 클래스를 쉽게 추가 할 수있는 단위 테스트 Xcode 템플릿이 함께 제공됩니다.GTM을 래핑합니다.
말 그대로 활성 프로젝트에 드롭하고 3 분 (또는 그 이하) 내에 단위 테스트 추가를 시작할 수 있습니다.
Specta 는 실행되는 최신 TDD (Test Driven Development) / BDD (Behavior Driven Development) 프레임 워크입니다.XCTest 위에.iOS 및 Mac OS X 프로젝트에 대한 단위 테스트를 지원합니다.
'SenTestKit'을 사용하여 각각의 모든 방법을 테스트 할 수 있기를 바랍니다.