Edited at

Swift3 : UnitTest

More than 1 year has passed since last update.


Swift3でUnitTest始めました。

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


環境

mcOS siera

xcode:8.2.1

swift3


プロジェクト生成

MyUnitTestの名前でプロジェクトを作ります. 「include unit tests」にチェックを入れると自動的に追加されます。

既に実装中のプロジェクトの場合以下のクリックしてBundleを追加すればUnitTestが追加されます。

File>New>Target

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をテストするテストケース作成


テストファイル追加





「Unit Test Case」を選択します。「Ui Test Case」とアイコンが同じなので間違いしないようにしてください。ハマります。


テストケース作成

@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実行

Functionの横にある実行ボタンを押しても実行可能