LoginSignup
0
2

More than 1 year has passed since last update.

SwiftPlaygroundでXCTestCaseのユニットテストを試す

Last updated at Posted at 2021-11-10

やりたいこと

Playgroundでテストを試してみたい

事前準備

以下の関数をテストします

0 -> "Taylor"
1 -> "Swift"
other -> "Unknown"

になる関数

struct TestableStruct {
    static func getName(id: Int) -> String {
        switch id {
        case 0:
            return "Taylor"
        case 1:
            return "Swift"
        default:
            return "Unknown"
        }
    }
}

テストする方法

テストクラスを書いて、NameTestCase.defaultTestSuite.run()を書くと、テストが実行されます。

テストクラス

class NameTestCase: XCTestCase {
    func test_0_Taylor() {
        print("Test1")
        XCTAssertEqual("Taylor", TestableStruct.getName(id: 0))
    }

    func test_1_Swift() {
        print("Test2")
        XCTAssertEqual("Swift", TestableStruct.getName(id: 1))
    }

    func test_Unknown() {
        print("Test3")
        XCTAssertEqual("Unknown", TestableStruct.getName(id: 10000))
    }

    func test_Fail() {
        print("Test3")
        XCTAssertEqual("Unknown", TestableStruct.getName(id: 0))
    }
}

テストの実行方法

NameTestCase.defaultTestSuite.run()

テストの実行結果

logに表示されるだけで、みやすいわけではない。
失敗したかは最後の行で確認

Test Suite 'NameTestCase' started at 2021-11-10 12:23:19.976
Test Case '-[__lldb_expr_12.NameTestCase test_0_Taylor]' started.
Test1
Test Case '-[__lldb_expr_12.NameTestCase test_0_Taylor]' passed (0.003 seconds).
Test Case '-[__lldb_expr_12.NameTestCase test_1_Swift]' started.
Test2
Test Case '-[__lldb_expr_12.NameTestCase test_1_Swift]' passed (0.000 seconds).
Test Case '-[__lldb_expr_12.NameTestCase test_Fail]' started.
Test3
/TestPlayground.playground:36: error: -[__lldb_expr_12.NameTestCase test_Fail] : XCTAssertEqual failed: ("Unknown") is not equal to ("Taylor")
Test Case '-[__lldb_expr_12.NameTestCase test_Fail]' failed (0.000 seconds).
Test Case '-[__lldb_expr_12.NameTestCase test_Unknown]' started.
Test3
Test Case '-[__lldb_expr_12.NameTestCase test_Unknown]' passed (0.000 seconds).
Test Suite 'NameTestCase' failed at 2021-11-10 12:23:19.980.
     Executed 4 tests, with 1 failure (0 unexpected) in 0.003 (0.004) seconds

終わり

Playgroundで簡単にTestableなコードが書けているか確かめられます!

0
2
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
0
2