Help us understand the problem. What is going on with this article?

SwiftでのXCTestについて

職場で「テストコード書いて」というふうに言われた。

実際に書いたことがなかったので調べながら XCTestを使ってみることにしました。

ひとまず触ってみることにしました。

Swiftのテストケースをファイル追加のステップ

  1. "New File..."
  2. "Test Case Classes" : 新しいテストクラスを追加
  3. LanguageはSwiftに設定 : ファイルを追加
  4. Bridging-Headerを追加しますか?って言われるので、Yesとして追加

これを実行すると、このテストも実行されます。

案外、簡単ですね。

※ 実は、プロジェクトを新規作成した時にテストプロジェクトも一緒に作られるみたいですね。。。

今まで知らなかった、、、

初期プロジェクトのコード

Swift.swift
import UIKit
import XCTest

class SampleTests: XCTestCase {

    override func setUp() {
        super.setUp()
        // Put setup code here. This method is called before the invocation of each test method in the class.
     }

    override func tearDown() {
        // Put teardown code here. This method is called after the invocation of each test method in the class.
        super.tearDown()
    }

    func testExample() {
        // This is an example of a functional test case.
        XCTAssert(true, "Pass")
    }

    func testPerformanceExample() {
        // This is an example of a performance test case.
        self.measureBlock() {
            // Put the code you want to measure the time of here.
        }
    }
}

setUp()

意味:メソッド内でテスト開始前の準備

tearDown()

意味:メソッド内でテスト終了時の後片付け

testExample()

意味:サンプル。必ずテストが成功します。

testPerformanceExample()

意味:パフォーマンス計測テストのサンプル
measureBlock内に計測したメソッドや処理を記述する

テストの実行方法

テストの実行方法は以下の2通り

1. Test navigatorから実行

カーソルをテストクラス(SampleTests)か、各テストメソッド(testExample, testPerformanceExample)にあわせると実行ボタンが表示されています。

2. ソースコード上から実行
テストクラスを選択し、ソースコードを表示。左側のひし形にカーソルを
合わせると実行ボタンが表示される

実行してみる
・テストに成功するとひし形の箇所が緑色に変わる

※パフォーマンス計測のテストを実行した際は計測結果を表示することができる
クリックと計測結果が表示される

テストに失敗した場合、失敗した箇所のひし形が赤色に変わる

Assertメソッド一覧

XCTFail (format…)

      常に失敗となる。エラーハンドリングの時に使用する。

XCTAssertNil (a1, format…)

      Nilチェック。a1がNilでない場合失敗となる。        

XCTAssertNotNil (a1, format…)

      Nilチェック。a1がNilの場合失敗となる。

XCTAssert (a1, format…)

      a1がtrueの場合成功、falseの場合失敗となる。

XCTAssertTrue (a1, format…)

      a1がtrueの場合成功、falseの場合失敗となる。

XCTAssertFalse (a1, format…)

      a1がfalseの場合成功、trueの場合失敗となる。

XCTAssertEqual (a1, a2, format…)

      a1とa2が等しい場合成功。
      ※swiftではスカラー型もObjectも区別しないので###XCTAssertEqualsObjectsは存在しない

XCTAssertEqualsWithAccuracy (a1, a2, accuracy, format…)

      a1とa2の誤差がaccuracy内であれば成功。

XCTAssertGreaterThan (a1, a2, format…)

      a1がa2より大きい場合成功。

XCTAssertGreaterThanOrEqual (a1, a2, format…)

      a1がa2以上の場合成功。

XCTAssertLessThan (a1, a2, format…)

      a1がa2より小さい場合成功。

XCTAssertLessThanOrEqual (a1, a2, format…)

      a1がa2以下の場合成功。

制作チーム:サンストライプ

http://sunstripe.main.jp/
(月1WEBコンテンツをリリースして便利な世の中を作っていくぞ!!ボランティアプログラマー/デザイナー/イラストレーター/その他クリエイター声優募集中!!)

地域情報 THEメディア

THE メディア 地域活性化をテーマに様々なリリース情報も含め、記事をお届けしてます!!
https://the.themedia.jp/

ゼロからはじめる演劇ワークショップ

多様化の時代に向けて他者理解を鍛える

ただいま、コロナの影響で中止中 6月ごろまで延期
https://workshop.themedia.jp/

プログラミングワークショップ・ウェブ塾の開講!!!

様々なテーマでプログラミングに囚われずに取り組んでいきます。
詳しくはこちら ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓
プログラミングサロン 月1だけのプログラミング学習塾

青空プログラミング

まずはリフレッシュして考えてみようIoTの未来の社会を考えながらも社会問題などにも取り組む活動しています。

以下を用いています。
actcoin:SDGsを知るきっかけとなりました社会貢献の見える化を実現しているアプリケーションサービス
SDGs:持続可能な開発目標
Zoom:オンライン会議(Zoomを用いて会議をしたりしてます)

https://note.com/thecardgame/n/ndf387cacca47

関連記事

About - サンストライプ


制作チーム:サンストライプ

http://sunstripe.main.jp/sunstripe/
(月1WEBコンテンツをリリースして便利な世の中を作っていくぞ!!ボランティアプログラマー/デザイナー/イラストレーター/その他クリエイター声優募集中!!)

地域情報 THEメディア

THE メディア 地域活性化をテーマに様々なリリース情報も含め、記事をお届けしてます!!
https://the.themedia.jp/

ゼロからはじめる演劇ワークショップ

多様化の時代に向けて他者理解を鍛える

https://workshop.themedia.jp/

プログラミングワークショップ・ウェブ塾の開講!!!

様々なテーマでプログラミングに囚われずに取り組んでいきます。
詳しくはこちら ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓
プログラミングサロン 月1だけのプログラミング学習塾

協力応援 / 支援者の集い

チーム:サンストライプ

プログラミングラボ

https://twitter.com/sunstripe2011

一緒にポートフォリオを作りませんか?現場の体験やそれぞれの立場から年齢関係なく作品を作りたい方々と一緒にチームを作って、作品を作っています。現場に行きたい人には、職場紹介や職場の体験や悩み相談なども受けております。
様々な職種からプログラミングの知識を得たい、デザインの知識を得たい、データーベースの知識を得たいという人が集まっております。
週1のミーティングにそれぞれの近況と作業報告して、たまにリモート飲み会などをしております!!

興味がある方は、DMに話しかけてみてください。

sunstripe2011
iOSプログラマーをしています。休日はアプリ開発の勉強などをしています。 一緒にアプリ開発してみたい方はDMください アプリ開発・マネージメントを日頃「素敵」をテーマに活動中 まったりラボというラジオ番組をしています。
http://sunstripe.main.jp/sunstripe/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away