LoginSignup
3
3

More than 5 years have passed since last update.

Swift3 : UnitTest

Last updated at Posted at 2017-04-01

Swift3でUnitTest始めました。

初めてなので設定から簡単なテストケースを作成します。

環境

mcOS siera
xcode:8.2.1
swift3

プロジェクト生成

MyUnitTestの名前でプロジェクトを作ります. 「include unit tests」にチェックを入れると自動的に追加されます。
スクリーンショット 2017-04-01 9.54.30.png

既に実装中のプロジェクトの場合以下のクリックしてBundleを追加すればUnitTestが追加されます。
File>New>Target
スクリーンショット 2017-04-01 10.25.49.png

スクリーンショット 2017-04-01 10.26.10.png

iOS Unit Testing Bundleを選択して設置すればOK

ViewControllerにFunctionを一つ追加してみます

ViewController.swift
import UIKit

class ViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
    }

    /// 入力された文字列が数字かどうか判別
    ///
    /// - Parameter numStr: 文字列
    /// - Returns: 判別結果
    func isNumber(numStr: String) -> Bool {
        if Int(numStr) != nil {
           return true
        } else {
            return false
        }
    }

}

ViewControllerに追加したFunctionをテストするテストケース作成

テストファイル追加

スクリーンショット 2017-04-01 10.08.52.png
スクリーンショット 2017-04-01 10.09.16.png
「Unit Test Case」を選択します。「Ui Test Case」とアイコンが同じなので間違いしないようにしてください。ハマります。
スクリーンショット 2017-04-01 10.09.50.png

テストケース作成

@testable import MyUnitTest」を追加
その後はViewControllerを生成してテストケースを追加するだけです。
今回は簡単にTrue,Falseが正しくリタンされていることを確認します。

ViewControllerTests.swift
import XCTest
@testable import MyUnitTest

class ViewControllerTests: XCTestCase {

    override func setUp() {
        super.setUp()
    }

    override func tearDown() {
        super.tearDown()
    }

    let vc = ViewController()

    func test_isNumber関数に数字の文字列が入力された場合Trueがリタンされる() {
        XCTAssertTrue(vc.isNumber(numStr: "123"))
    }

    func test_isNumber関数に数字の文字列が入力された場合Falseがリタンされる() {
        XCTAssertFalse(vc.isNumber(numStr: "テスト"))
    }

}

テスト実行

Product>Test実行
スクリーンショット 2017-04-01 10.47.02.png

Functionの横にある実行ボタンを押しても実行可能
スクリーンショット 2017-04-01 10.48.11.png

3
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
3