SlideShare ist ein Scribd-Unternehmen logo
1 von 8
Downloaden Sie, um offline zu lesen
TDDでFizzBuzzしてみる
in Swift
iOS_LT 2014.7.2 / @shoma2da
今日伝えたいこと
×TDDとはこうあるべき
Swiftのユニットテストは
こう書ける
TDDとは
成功しない
テストを書く
リファクタリング
テストを通る状態を維持
がむしゃらに
テストを通す
1
2 3
FizzBuzzとは
1から順に数字を数える
3の倍数の時は「Fizz」と言う
5の倍数の時は「Buzz」と言う
15の倍数の時は「FizzBuzz」と言う
それ以外の時は数字をそのまま言う
テストはどう書く?
今回作るFizzBuzz
※クラス設計は様々考えられます
+FizzBuzz
+getList(upper:Int):Array<String>
+convert(number:Int):String
超高速ライブコーディング
• ソースコード(コミット整理済み)

https://github.com/shoma2da/SwiftTddSample
• BDDライブラリもありました

https://github.com/modocache/Quick
以上です

Weitere ähnliche Inhalte

Was ist angesagt?

Psql起動画面(修正版)
Psql起動画面(修正版)Psql起動画面(修正版)
Psql起動画面(修正版)
Toshi Harada
 
フロントエンド開発の3ステップ(npm事始め)
フロントエンド開発の3ステップ(npm事始め)フロントエンド開発の3ステップ(npm事始め)
フロントエンド開発の3ステップ(npm事始め)
hashedrock
 
MongoDBJP 納涼もんご祭り
MongoDBJP 納涼もんご祭りMongoDBJP 納涼もんご祭り
MongoDBJP 納涼もんご祭り
Hiroaki Kubota
 

Was ist angesagt? (20)

クリップボード監視と外部コマンド実行 #chibapm
クリップボード監視と外部コマンド実行 #chibapmクリップボード監視と外部コマンド実行 #chibapm
クリップボード監視と外部コマンド実行 #chibapm
 
Bazaar
BazaarBazaar
Bazaar
 
080720 Vim M
080720 Vim M080720 Vim M
080720 Vim M
 
Wakateweb 10
Wakateweb 10Wakateweb 10
Wakateweb 10
 
doctest を書こう @ pycon kansai
doctest を書こう @ pycon kansaidoctest を書こう @ pycon kansai
doctest を書こう @ pycon kansai
 
SnapDishの事例
SnapDishの事例SnapDishの事例
SnapDishの事例
 
RuCTFEに参加したよ
RuCTFEに参加したよRuCTFEに参加したよ
RuCTFEに参加したよ
 
Psql起動画面(修正版)
Psql起動画面(修正版)Psql起動画面(修正版)
Psql起動画面(修正版)
 
フロントエンド開発の3ステップ(npm事始め)
フロントエンド開発の3ステップ(npm事始め)フロントエンド開発の3ステップ(npm事始め)
フロントエンド開発の3ステップ(npm事始め)
 
Day30 os
Day30 osDay30 os
Day30 os
 
Rubyボードハンズオンテキスト
RubyボードハンズオンテキストRubyボードハンズオンテキスト
Rubyボードハンズオンテキスト
 
卒制Ne wver
卒制Ne wver卒制Ne wver
卒制Ne wver
 
fdコマンドを使おう
fdコマンドを使おうfdコマンドを使おう
fdコマンドを使おう
 
MongoDBJP 納涼もんご祭り
MongoDBJP 納涼もんご祭りMongoDBJP 納涼もんご祭り
MongoDBJP 納涼もんご祭り
 
冴えないデータセットの育て方
冴えないデータセットの育て方冴えないデータセットの育て方
冴えないデータセットの育て方
 
Ruby初級者向けレッスン KOF2015 出張版
Ruby初級者向けレッスン KOF2015 出張版Ruby初級者向けレッスン KOF2015 出張版
Ruby初級者向けレッスン KOF2015 出張版
 
FreeBSDのpostfixをblacklistd(8)に対応させてみた
FreeBSDのpostfixをblacklistd(8)に対応させてみたFreeBSDのpostfixをblacklistd(8)に対応させてみた
FreeBSDのpostfixをblacklistd(8)に対応させてみた
 
78tch
78tch78tch
78tch
 
GitHub Travis-CI Go!
GitHub Travis-CI  Go!GitHub Travis-CI  Go!
GitHub Travis-CI Go!
 
Tortoise gitで日本語ファイル名を使うときのgitの選択について
Tortoise gitで日本語ファイル名を使うときのgitの選択についてTortoise gitで日本語ファイル名を使うときのgitの選択について
Tortoise gitで日本語ファイル名を使うときのgitの選択について
 

Andere mochten auch

ユニットテストの保守性を作りこむ, xpjugkansai2011
ユニットテストの保守性を作りこむ, xpjugkansai2011ユニットテストの保守性を作りこむ, xpjugkansai2011
ユニットテストの保守性を作りこむ, xpjugkansai2011
H Iseri
 
TDDを実践してわかったTDDつまづくあるあると自分なりの乗り越え方まとめ
TDDを実践してわかったTDDつまづくあるあると自分なりの乗り越え方まとめTDDを実践してわかったTDDつまづくあるあると自分なりの乗り越え方まとめ
TDDを実践してわかったTDDつまづくあるあると自分なりの乗り越え方まとめ
Kei Sawada
 
これからの「アジャイル」の話をしよう ――今を生き延びるための開発手法とスキル (関西バージョン)
これからの「アジャイル」の話をしよう ――今を生き延びるための開発手法とスキル (関西バージョン)これからの「アジャイル」の話をしよう ――今を生き延びるための開発手法とスキル (関西バージョン)
これからの「アジャイル」の話をしよう ――今を生き延びるための開発手法とスキル (関西バージョン)
Fumihiko Kinoshita
 
オブジェクト指向できていますか?
オブジェクト指向できていますか?オブジェクト指向できていますか?
オブジェクト指向できていますか?
Moriharu Ohzu
 
ソースコードの品質向上のための効果的で効率的なコードレビュー
ソースコードの品質向上のための効果的で効率的なコードレビューソースコードの品質向上のための効果的で効率的なコードレビュー
ソースコードの品質向上のための効果的で効率的なコードレビュー
Moriharu Ohzu
 

Andere mochten auch (20)

レッツ!Google Apps ScriptでTDD(仮)
レッツ!Google Apps ScriptでTDD(仮)レッツ!Google Apps ScriptでTDD(仮)
レッツ!Google Apps ScriptでTDD(仮)
 
Sparknize - Visualize CSV Data With Sparkline In Seconds
Sparknize - Visualize CSV Data With Sparkline In SecondsSparknize - Visualize CSV Data With Sparkline In Seconds
Sparknize - Visualize CSV Data With Sparkline In Seconds
 
部屋とワイシャツと PHPとアジャイル開発と 私
部屋とワイシャツとPHPとアジャイル開発と私部屋とワイシャツとPHPとアジャイル開発と私
部屋とワイシャツと PHPとアジャイル開発と 私
 
ユニットテストの保守性を作りこむ, xpjugkansai2011
ユニットテストの保守性を作りこむ, xpjugkansai2011ユニットテストの保守性を作りこむ, xpjugkansai2011
ユニットテストの保守性を作りこむ, xpjugkansai2011
 
アジャイル開発とTDDを半年間実践してみた顛末と、これから
アジャイル開発とTDDを半年間実践してみた顛末と、これからアジャイル開発とTDDを半年間実践してみた顛末と、これから
アジャイル開発とTDDを半年間実践してみた顛末と、これから
 
TDDを実践してわかったTDDつまづくあるあると自分なりの乗り越え方まとめ
TDDを実践してわかったTDDつまづくあるあると自分なりの乗り越え方まとめTDDを実践してわかったTDDつまづくあるあると自分なりの乗り越え方まとめ
TDDを実践してわかったTDDつまづくあるあると自分なりの乗り越え方まとめ
 
Cibc lecture imagire
Cibc lecture imagireCibc lecture imagire
Cibc lecture imagire
 
Test
TestTest
Test
 
三周遅れのXP
三周遅れのXP三周遅れのXP
三周遅れのXP
 
コミュニティの俺 2016
コミュニティの俺 2016コミュニティの俺 2016
コミュニティの俺 2016
 
これからの「アジャイル」の話をしよう ――今を生き延びるための開発手法とスキル (関西バージョン)
これからの「アジャイル」の話をしよう ――今を生き延びるための開発手法とスキル (関西バージョン)これからの「アジャイル」の話をしよう ――今を生き延びるための開発手法とスキル (関西バージョン)
これからの「アジャイル」の話をしよう ――今を生き延びるための開発手法とスキル (関西バージョン)
 
クロージャデザインパターン
クロージャデザインパターンクロージャデザインパターン
クロージャデザインパターン
 
TDD Boot Camp Tokyo for c++ 2014-01 デモ用資料
TDD Boot Camp Tokyo for c++ 2014-01 デモ用資料TDD Boot Camp Tokyo for c++ 2014-01 デモ用資料
TDD Boot Camp Tokyo for c++ 2014-01 デモ用資料
 
The FizzBuzz Programing Contest
The FizzBuzz Programing ContestThe FizzBuzz Programing Contest
The FizzBuzz Programing Contest
 
プレゼンテーションZEN
プレゼンテーションZENプレゼンテーションZEN
プレゼンテーションZEN
 
ソーシャルゲームのためのデータベース設計
ソーシャルゲームのためのデータベース設計ソーシャルゲームのためのデータベース設計
ソーシャルゲームのためのデータベース設計
 
Quotes from Sir Ken Robinson’s 2013 TED talk
Quotes from Sir Ken Robinson’s 2013 TED talkQuotes from Sir Ken Robinson’s 2013 TED talk
Quotes from Sir Ken Robinson’s 2013 TED talk
 
オブジェクト指向できていますか?
オブジェクト指向できていますか?オブジェクト指向できていますか?
オブジェクト指向できていますか?
 
こわくない Git
こわくない Gitこわくない Git
こわくない Git
 
ソースコードの品質向上のための効果的で効率的なコードレビュー
ソースコードの品質向上のための効果的で効率的なコードレビューソースコードの品質向上のための効果的で効率的なコードレビュー
ソースコードの品質向上のための効果的で効率的なコードレビュー
 

Mehr von Shoichi Matsuda

Mehr von Shoichi Matsuda (9)

Yahoo! JAPANとKotlin
Yahoo! JAPANとKotlinYahoo! JAPANとKotlin
Yahoo! JAPANとKotlin
 
広がりを見せるAndroidプラットフォーム
広がりを見せるAndroidプラットフォーム広がりを見せるAndroidプラットフォーム
広がりを見せるAndroidプラットフォーム
 
Kotlinでテストコードを書く
Kotlinでテストコードを書くKotlinでテストコードを書く
Kotlinでテストコードを書く
 
2015冬から始めるKotlin
2015冬から始めるKotlin2015冬から始めるKotlin
2015冬から始めるKotlin
 
Gradleスクリプトを読み解く
Gradleスクリプトを読み解くGradleスクリプトを読み解く
Gradleスクリプトを読み解く
 
プログラミング言語は怖くない
プログラミング言語は怖くないプログラミング言語は怖くない
プログラミング言語は怖くない
 
モックライブラリを使ってきちんとユニットテストする #Objective-C
モックライブラリを使ってきちんとユニットテストする #Objective-Cモックライブラリを使ってきちんとユニットテストする #Objective-C
モックライブラリを使ってきちんとユニットテストする #Objective-C
 
テストを書きたいあなたが意識すべきただ一つのこと
テストを書きたいあなたが意識すべきただ一つのことテストを書きたいあなたが意識すべきただ一つのこと
テストを書きたいあなたが意識すべきただ一つのこと
 
アプリでもオブジェクト指向エクササイズ(Potatotips#3)
アプリでもオブジェクト指向エクササイズ(Potatotips#3)アプリでもオブジェクト指向エクササイズ(Potatotips#3)
アプリでもオブジェクト指向エクササイズ(Potatotips#3)