2011-07-18 6 views
25

Xcodeのシミュレータでアプリケーションテストを実行できるようになったため、テストをロジックとアプリケーションのテストに分離することは、実行時間をわずかに節約するだけでなく、どのような利点がありますか?アプリケーションテストVSロジックテスト

Apple docs

の通り分化:

  • ロジックテスト。これらのテストは、クリーンルーム環境でのコードの正しい機能をチェックします。つまり、コードはアプリケーション内で実行されません。ロジックテストでは、非常に細かいレベル(クラス内の単一のメソッド)またはワークフローの一部(1つまたは複数のクラスのいくつかのメソッド)でコードを実行するために、非常に特定のテストケースをまとめることができます。ロジックテストを使用して、コードのストレステストを実行して、実行中のアプリケーションでは起こりそうな極端な状況で正しく動作するようにすることができます。これらのテストは、予期しない方法で使用すると正しく動作する堅牢なコードを作成するのに役立ちます。論理テストは、iOS Simulator SDKベースです。ただし、アプリケーションはiOS Simulatorでは実行されません。テスト対象のコードは、対応するターゲットのビルドフェーズで実行されます。

  • アプリケーションテスト。これらのテストは、実行中のアプリケーションでコードの機能をチェックします。アプリケーションテストを使用して、ユーザーインターフェイスコントロール(アウトレットとアクション)の接続を維持し、アプリケーションで作業するときにコントロールとコントローラオブジェクトがオブジェクトモデルで正しく機能するようにすることができます。アプリケーションテストはデバイス上でのみ実行されるため、これらのテストを使用してデバイスの場所を取得するなどのハードウェアテストを実行することもできます。 /ユニットテストは、1つまたはいくつかのメソッドのための非常に小さな動作をテストするために使用される

    ロジック試験、例えば:論理試験に比べ

+0

リンクが無効であるため、この質問は無関係かもしれません。詳細はhttp://stackoverflow.com/q/41404613/62をご覧ください。 –

答えて

4

アプリケーション・テストは、実際には2つの異なるもののために使用されます"私はこのような私のオブジェクトを作成することを考えると、それは私が期待している特定のプロパティの価値ですか?

しかし、アプリケーションテストは、大きな画像をテストするために使用されます。 「特定のテーブルビューのセルをタップすると、詳細ビ​​ューで正しいデータを取得できますか?」

+1

確かに、これは当てはまりますが、これらのテストを別々のテストファイル/バンドルに分けて得られるものは何ですか? – nduplessis

+0

ちょうど同じことを話しています。私は主に、論理テストについて話すときに、Xcode(OCUnitなど)でアプリケーションテストと単体テストについて話すときに、InstrumentsのUIAutomationテストを意味します。 –

+0

さて、論理テストとして、細かい詳細なテストを書く方が簡単です。アプリケーションテストとしてそれらのいくつかを実行することはできますが、コードと目的のコードを書くことに近いからです。これとは逆に、同じことが真実です。これは、手元の作業に適切なツールを使用することの問題になります。 –

関連する問題