24

iOSで単体テストを行いたい。デフォルトでは、テスト クラスは Xcode 5 の XCTest フレームワーク クラスを使用して作成されます。以前のバージョンの iOS では SenTestingKit を使用しました。これら 2 つのフレームワークの違いは何ですか? XCTest フレームワークの利点は何ですか。関連するドキュメントをグーグルで検索しましたが、何も見つかりませんでした。私が見つけた唯一のものは、キット内で使用するインターフェイス クラスです。誰でも関連リソースを教えてもらえますか?

4

3 に答える 3

18

Apple のドキュメントは、テストに関して著しく不足しています。XCTest で 5 分間を費やしただけで、私はそれにハマってしまったので、残念です。そこで、役に立つと思われるドキュメントをいくつか紹介します。

最初に、テストに関する WWDC ビデオを停止して見てください: https://developer.apple.com/wwdc/videos/?include=409#409 (登録開発者である必要があります)

次に、ボットについてお読みください。それらは XCTest の本当の魔法です。私は現在、Mavericks Server を実行している Mac Mini の環境を、iPod Touch、iPhone、および iPad の小さなアレイに接続して、同時にユニット テストを実行し、レポートを返すようにセットアップしています。マジで魔法に近い。

https://developer.apple.com/library/ios/documentation/IDEs/Conceptual/xcode_guide-continuous_integration/000-About_Continuous_Integration/about_continuous_integration.html#//apple_ref/doc/uid/TP40013292

とは言っても、私はこの 2 つを比較できるほど SenTest についてよく知りません。しかし、私は XCTest を学んでいるので、これまでのところ私が実際に掘り下げていることについていくつかの考えを述べます。

  • それはすでにそこにあります。ダウンロードするものは何もなく、テストしたいオブジェクトを作成すると同時に、テスト クラス オブジェクトを作成できます。ラッド。
  • Xcode と深く統合されているため、ガターでテスト カバレッジを確認できます。コンパニオン ビューを使用して、ソースからのテスター、またはテスター メソッドからのソースを表示することもできます。また、常に最新の状態になります。Apple が何かを「壊した」ため、Xcode との統合を修正するのを待つ必要はありません。
  • 継続的インテグレーション。ボットは魔法のようなもので、とても簡単です。Git ホスティングも利用できますが、これはささやかな特典ですが、Git を内部でホストしたいが GitHub Enterprise にお金を払いたくない場合は、なおさらです。

そして、測定のためのいくつかの短所:

  • ドキュメントの欠如。アサーションのリストのヘッダーを読むように私に頼むのは、大胆な動きです。Apple がこれをすぐに修正することは間違いありませんが、すぐには十分ではありません。
  • あなたは Xcode ともう少し深く結びついています。開発の欠点ではありませんが、XCTest のスクリプト作成は、他のオプションほど洗練されていません。
  • 継続的インテグレーションには OS X Server が必要です。本当に必要なら、同じマシンにインストールすることもできますが、Mountain Lion Server を所有していたとしても、20 ドルで購入できます。これに関しては全然苦じゃないです(笑)。

私の2セント。それが役に立てば幸い。リンク先のビデオを見ることを強くお勧めします。XCTest を使用しているかどうかに関係なく、ライブ テスト作成を行っており、単体テスト全般について非常に説得力のあるケースを作成しています。

于 2013-10-31T01:37:38.307 に答える
2
于 2014-02-03T10:13:48.047 に答える