テストをしてみよう!SwiftでQuickを使用する方法【初心者向け】

初心者向けにSwiftのQuickを使う方法について解説しています。Quickは、初心者でも手軽に利用できるiOS用のテストフレームワークで、インストール手順と実際にテストコードを書いています。ぜひ参考にしてみてください。

TechAcademyマガジンはオンラインのプログラミングスクールTechAcademy [テックアカデミー]が運営する教育×テクノロジーのWebメディアです。初心者でもすぐ勉強できる記事が2,000以上あります。

SwiftのQuickの使い方について解説しています。

Quickをインストールし、実際にテストコードを書いているので、手順を参考にしてみてください。

 

なお本記事は、TechAcademyのiPhoneアプリ開発オンラインブートキャンプの内容をもとに紹介しています。

 

Quickとは

従来、SwiftのユニットテストやUIテストについては、XCTestというiOSテストフレームワークを使用することが一般的でした。

今でもXCTestを使用し、テストすることに問題はありませんが、XCTestは独特な記述方式であり、初めて使用する人には少しハードルが高いと言われています。

そこで、初心者にも簡単にSwiftのテストを書けるiOSアプリ用のテストフレームワークというのがQuickです。

公式ページはこちらです。

 

Quickのインストール

GitHubにも書いてありますが、CocoaPodsでの導入方法は下記の通りです。

※ 説明用のプロジェクト名を「SampleProject」とします。

1.Realmを利用したいプロジェクトに移動

cd [project root]

2.CocoaPodsを初期化しPodFileを作成

pod init

3.Podfileを編集

vi Podfile
target '<Project name>'
pod 'Quick'

4.インストール

pod install

 

[PR] iPhoneアプリの開発で挫折しない学習方法を動画で公開中

実際にQuickを使ってみよう

Quickでのテストコードの書式

続いて、基本的なテストコードの書式を見ていきましょう。

 

1. describe:「何のテストか」を記述

今回は、シンプルに「足し算」のテストを扱います。

なので、「describe(“足し算”)」と記述します。

// テストコード
override func spec() {
  describe("足し算") {
    // 「足し算」のテスト用コードをここに書きます。
  }
}

 

2. context:「どの条件のテストか」を記述

今回は、足し算の中でも「整数の場合」のテストを扱います。

なので、「context(“整数の場合”)」と記述します。

// テストコード
override func spec() {
  describe("足し算") {
    context("整数同士の場合") {
      // 整数同士の足し算の場合のテスト用コードをここに書きます。
    }
  }
}

 

3. it:「どのようなテストの結果か」を記述

今回は、整数同士の足し算の中で「1+1=2」のテストを実施します。

なので、「it(“1 + 1 = 2”)」と記述します。

// テストコード
override func spec() {
  describe("足し算") {
    context("整数の場合") {
      it("1 + 1 = 2") {
        // 実行するテストコードをここに記述します。
      }
    }
  }
}

 

4. expect(〇〇).to(××):「〇〇が××と等しい結果」になることを記述

今回実施する「1+1」のテスト結果は「2」ですので、

「expect(1 + 1).to(equal(2))」と記述します。

// テストコード
override func spec() {
  describe("足し算") {
    context("整数の場合") {
      it("1 + 1 = 2") {
        expect(1 + 1).to(equal(2))
      }
    }
  }
}

 

以上、SwiftでQuickを使う方法について解説しました。

入門向けのSwift学習サイトもまとめているので、Swift習得を目指している方は活用してみてください。

 

また、TechAcademyでは初心者でも最短4週間でオリジナルアプリが作れるiPhoneアプリ開発オンラインブートキャンプを開催しています。

期間中は現役エンジニアのメンターが毎日学習をサポートするので、独学よりも効率的に学ぶことができます。