Objective-C コードを単体テストするためのフレームワークは何ですか? Apple Xcode とうまく統合できるフレームワークが欲しいです。
17 に答える
Xcode には、Objective-C ユニット テスト フレームワークである OCUnit に似たXCTestが含まれており、プロジェクトのビルド プロセスの一部として XCTest ベースのユニット テストを実行するための完全なサポートを備えています。Xcode の単体テストのサポートについては、「Xcode の概要: 単体テストの使用」で説明されています。
Xcode 2 の頃に、Xcode 単体テストでいくつかの一般的なタスクを実行する方法について、一連のブログ投稿を書きました。
XCTest ではなく OCUnit を使用していますが、概念はほとんど同じです。
最後に、Cocoa ユーザー インターフェイスのテストの書き方に関する記事もいくつか書きました。ほとんどの場合、イベント ループなどをスピンする必要がないため、Cocoa の構造は比較的単純です。
これにより、モデル レベルのコードだけでなく、コントローラー レベルやビュー レベルのコードについても、テスト駆動型の開発を行うことができます。
GabrielHandfordによる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 オブジェクトに簡単に拡張できるようにします。
使用方法については、「コードの検証と単体テスト」ページを参照してください。
これは古い質問だと思いますが、xUnit スタイルのテスト (Test::Unit、JSUnit、JUnit など) よりも BDD スタイルのテスト (rspec、Jasmine など) を好む場合は、Cedarをチェックすることを検討してください。 . Cedar は、言語がクロージャーをサポートするようになったため、BDD スタイルのテストを Objective-C にもたらします。
私たちはPivotal Labsでの iOS プロジェクトに Cedar を喜んで使用しており、その改善に積極的に取り組んでいます。フィードバックや提案は、cedar-discuss@googlegroups.com までお寄せください。
私は、GHUnit が Objective-C の最も高度なテスト フレームワークであるという結論に達しました。ブログでテスト フレームワークのまとめを行いました。これは、展開 (iphone、シミュレーター、または mac os ネイティブ) とアサート機能の点で最も柔軟です。GTM に基づいているため、SenTestingKit に対する GTM の利点をすべて継承していますが、さらに多くの機能が追加されています。もう 1 つのボーナスは、非常に積極的に維持されていることです。
私はOCMockを GHUnitに統合する努力をしました。コードはgithubで入手できます。
Sen:te(Xcodeに含まれているテストフレームワークの作成者)は、iPhoneプロジェクトでOCUnitを使用する方法を説明しています:simple-iphone-ipad-unit-test。
ここにたくさんあります
xcodeにバンドルされているユニット テスト サポート(簡単なセットアップ用) とocrunner (いくつかの自動テスト/Growl 機能用) の組み合わせは、現在、私のお気に入りの Obj-C ユニット テスト セットアップです。
gh-unit をお勧めします。テスト結果の GUI が優れています。
Cocoa with Love の Matt Gallagher には、単体テストに関する非常に優れた記事があります。
iOS 向けのオープン ソース BDD テスト フレームワークであるKiwiを調べることをお勧めします。
プロジェクトの WIKI をチェックして、Daniel Steinberg の本「Test Driving iOS Development with Kiwi」を開始または入手してください test-driving-ios-development
SimpleUnitTest は iPhone と iPad のライブラリで動作します。
http://cbess.blogspot.com/2010/05/simple-iphone-ipad-unit-test.html
単体テスト クラスを簡単に追加するための単体テスト Xcode テンプレートが付属しています。GTM をラップします。
文字通りアクティブなプロジェクトにドロップして、3 分 (またはそれ以下) 以内に単体テストの追加を開始できます。
Spectaは、XCTest の上で実行される最新の TDD (テスト駆動開発)/BDD (動作駆動開発) フレームワークです。iOS および Mac OS X プロジェクトの単体テストをサポートしています。
「SenTestKit」を使用して、すべてのメソッドをテストできることを願っています。