Xcodeによるユニットテストの初心者向けガイド

ソフトウェアの構築は複雑なプロセスです。 さまざまなツールやプログラミング言語をマスターすることに加えて、さまざまなソフトウェア開発の役割を理解することも必要です。 私たちの多くが知っているように、優れたプロジェクトにはコーディングだけが関わっているわけではありません。 大規模なプロジェクトでは、要件収集、プロトタイピング、およびテストなど、他のリソースも関与します。

コードを検証するプロセスは、品質保証と呼ばれることがよくあります。 しかし、このフレーズはやや誤解を招きやすい。 コード品質を保証するのではなく、本当の目的はそれを測定することであり、多くの場合、プロジェクトが発展するにつれてそうなります。 テスト駆動開発(例:TDD)としても知られていますが、この微妙な違いは品質機能の役割を調べるとわかります。 7750>

WHY UNIT TESTS?

このように、品質測定はしばしば自動および手動活動にグループ化されます。 アルゴリズムに興味を持つ者として、ユニット テストとして知られている追加のコードは、主要なソフトウェア プロジェクトをテストするために働きます。 ユニット テストは通常、開発者によって書かれ、TDD 環境における焦点となります。 例えば、この本の開発ではユニットテストが不可欠です。 iOS XCTest Framework を使用して、ユニットテストが Swift でどのように動作するかを確認してみましょう。

WORKING WITH XCTEST

この本でレビューした Swift の概念に精通している場合、ユニットテストを書く方法を学ぶことは簡単であるべきです。 説明したように、ユニットテストは、エンドユーザーインターフェースを欠くコードを実行するために機能します。 説明するために、Stack データ構造を行使するテストケースを確認してみましょう。

この本は Xcode 統合開発環境 (IDE) の詳細をレビューしませんが、テストが関数、クラスまたはターゲットによって実行できることに注意する必要があります。 Xcode を使用して、ユニット テストは、プライマリ コード プロジェクトに新しいテスト ターゲットを追加することによって確立されます。 いったん構成されると、ユニット テストは IDE またはコマンド ラインから実行できます。

TEST RULES

必須ではありませんが、ユニット テスト ファイルが実装ファイルの命名規則と密接に一致する場合、ベスト プラクティスと見なされます。 この例では、StackTest.swift を使用します。 メイン プロジェクトから主要な Stack メソッドとプロパティにアクセスするために、このファイルにはテスト可能な import ステートメントも含まれます。 本質的なメソッドは、アサーションとして一緒にグループ化されます。 テストを作成するとき、コンパイラーは test キーワードをプレフィックスとする関数でユニットテストを認識します。

通常の Swift の関数とは異なり、ユニットテストは意図的にロジックの自己完結したユニットとして設計されています。 その結果、テストメソッドは引数を受け取らず、値を返しません。 代わりに、テスト データは、ヘルパー メソッドと初期化/ティアダウン シーケンスを通して管理することができます。 以下について考察します。

TEST PLANNING

すでに説明したように、Stack データ構造の主な操作は、アイテムの追加と削除です。 すべての操作をテストする単一の関数を記述する代わりに、私たちのテスト計画では、独自のテストと各主要な Stack 操作を分離しています。 testPushStack で見られるように、アサーション XCTAssertTrue は Stack.count 変数が正しく初期化されているかどうかをチェックします。 次のステップでは、numberList のアイテムの配列を繰り返し実行することで、Stack.push を実行します。 各テストが同じデータを使用することを確認するために、numberList は XCTestCase クラスの setup メソッドを使用して入力されます。

Stack のアイテムを追加するユニット テストを実装したので、アイテムを削除する次のテストを書くことができます:

コメントを残す

メールアドレスが公開されることはありません。