XCode を使わず Swift で TDD しながら FizzBuzz を書いてみた
この前作った Swift の環境 で勉強として FizzBuzz を書いてみた。
パッケージの作り方
$ mkdir FizzBuzz $ cd FizzBuzz $ swift package init
コード
// Sources/app/FizzBuzz.swift class FizzBuzz { let num : Int init(num : Int) { self.num = num } func toString() -> String { switch self.num { case let n where n % 15 == 0: return "FizzBuzz" case let n where n % 3 == 0: return "Fizz" case let n where n % 5 == 0: return "Buzz" default: return String(self.num) } } }
// Tests/app/FizzBuzzTests.swift import XCTest @testable import app class FizzBuzzTests: XCTestCase { func testThree() { let fizzBuzz = FizzBuzz(num: 3) XCTAssertEqual(fizzBuzz.toString(), "Fizz") } func testFive() { let fizzBuzz = FizzBuzz(num: 5) XCTAssertEqual(fizzBuzz.toString(), "Buzz") } func testFifteen() { let fizzBuzz = FizzBuzz(num: 15) XCTAssertEqual(fizzBuzz.toString(), "FizzBuzz") } func testOther() { let fizzBuzz = FizzBuzz(num: 1) XCTAssertEqual(fizzBuzz.toString(), "1") } static var allTests : [(String, (FizzBuzzTests) -> () throws -> Void)] { return [ ("testThree", testThree), ("testFive", testFive), ("testFifteen", testFifteen), ("testOther", testOther) ] } }
テストの実行方法
$ swift build $ swift test