やりたいこと
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なコードが書けているか確かめられます!