post Image
SwiftでTestコード(on Xcode)

関数やクラスのtestをやらなきゃなー思って…
とりあえず、やり方だけ覚えとこう(実際やるかはまた別のお話w

プロジェクト作成

TestSample というプロジェクトを作成します
作成時にこの2つにチェックを入れておきます
(チェックしてなくても後から足すこともできますが今回説明は割愛します。こちらを参考に…)
スクリーンショット 2017-05-17 17.57.23.png

プロジェクト設定

プロジェクト設定を少し変更します
Defines ModuleYESにします
スクリーンショット 2017-05-17 18.47.00.png

MainCode

メインのところにコードを書きます
今回は、簡単に新しいMySample.swiftファイルを作成して、クラスとaddメソッドを追加します

MySample.swift
import Foundation
import UIKit

open class MySample {

    public func add(a: Int, b: Int) -> Int {
        return a + b
    }

}

引数を足すだけの簡単な関数ですw

MySample.swiftの右側のチェックをつけておくことで、Test側でも参照できるようにしておきます
スクリーンショット 2017-05-17 19.23.08.png

TestCode

先ほど作ったaddメソッドをtestします
最初にチェックしておいたことで[プロジェクト名]Testフォルダができていると思います
[プロジェクト名]Test.swiftを開くとすでにコードが書いてあります
@testable import [プロジェクト名]で先ほどメインに書いたクラスを参照できます

[プロジェクト名]Test.swift
import XCTest
@testable import TestSample

class TestSampleTests: 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.
        // Use XCTAssert and related functions to verify your tests produce the correct results.

    }

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

testしたいメソッドの追加

testから始まるメソッドを追加します
testから始めるメソッド名にすることで、testと認識してくれます)

[プロジェクト名]Test.swift
import XCTest
@testable import TestSample

class TestSampleTests: XCTestCase {
    // 省略
    func testMySample() {
        let mySample = MySample()
        let add = mySample.add(a: 2, b: 3)
        // addメソッドの返り値が5であるかの判断
        XCTAssertEqual(add, 5)
    }
}

テストの実行

command + Uで実行できます
左から5番目の場所に表示されます
実行して成功したものには、緑のマークがつきます
実行して失敗したものには、赤のマークがつきます
スクリーンショット 2017-05-17 19.30.13.png

個別実行

testをメソッドごとに個別に実行したい場合、そのメソッドにマウスを合わせると実行マークに変わるので選択すると実行できます
スクリーンショット 2017-05-17 19.28.03.png

成功と失敗

先ほど書いたコードのXCTAssertEqualで成功か失敗かを判断します
なので、わざと失敗させてみたいと思います

[プロジェクト名]Test.swift
import XCTest
@testable import TestSample

class TestSampleTests: XCTestCase {
    // 省略
    func testMySample() {
        let mySample = MySample()
        let add = mySample.add(a: 2, b: 3)
        XCTAssertEqual(add, 4)
    }
}

2 + 34になるとしてみますw
スクリーンショット 2017-05-17 19.33.04.png
(もちろん失敗しますw)

XCTAssertの他のメソッドはこちらを参考に…)


『 Swift 』Article List
Category List

Eye Catch Image
Read More

Androidに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

AWSに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

Bitcoinに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

CentOSに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

dockerに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

GitHubに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

Goに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

Javaに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

JavaScriptに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

Laravelに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

Pythonに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

Rubyに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

Scalaに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

Swiftに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

Unityに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

Vue.jsに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

Wordpressに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

機械学習に関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。