Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

わんくま名古屋#25(20121201) TDD道場#13 ~ Metroアプリをテストファーストするときのポイント

1,257 views

Published on

サンプルコードは SkyDrive にあります。 http://t.co/Z9DnR4ho

Published in: Technology
  • Be the first to comment

  • Be the first to like this

わんくま名古屋#25(20121201) TDD道場#13 ~ Metroアプリをテストファーストするときのポイント

  1. 1. TDD道場 TDD やってみよう! わんくま同盟 biac 名古屋勉強会 #25 名古屋市2012年12月1日 名古屋ソフトウェアセンター わんくま同盟 名古屋勉強会 #25 – TDD道場 #13 1/15
  2. 2. • 著書 自己紹介 著作 – 「速攻入門 C#」 (2012/3) 技術評論社、共著 – 「ソフトな彼女とハードな彼 氏。」(2012/3) アジャイルマイ ンドvol.1 掲載 • 記事 biac (山本 康彦) – 連載 「C#でTDD入門」 CodeZine BluewaterSoft – 週刊連載「WinRT/Metro Tips」 @IT - .NET開発者中心 http://www.bluewatersoft.jp/ …etc. Windows 8 Metro Style App.• 名古屋大学工学部(修士) Windows Phone 8• HONDA R&Dで自動車設計 ソフトウェア …Windows系の最新技術• 1994~ ソフトウェア業界 開発• 2012~ BluewaterSoft TDD(コーディング技法)の普及 わんくま同盟 名古屋勉強会 #25 – TDD道場 #13 2/15
  3. 3. Test Driven Development テスト駆動開発わんくま同盟 名古屋勉強会 #25 – TDD道場 #13 3/15
  4. 4. TDD – テスト駆動開発・「テスト」と言ってるけど、 TDDは品質保証テストじゃない。・「開発」と言ってるけど、 TDDは開発プロセスじゃない。 わんくま同盟 名古屋勉強会 #25 – TDD道場 #13 4/15
  5. 5. TDDの考案者 Kent Beck の説明 “Test Driven Development: By Example” (2002) より。 「We drive development with automated tests, a style of development called Test-Driven Development (TDD). 」 わんくま同盟 名古屋勉強会 #25 – TDD道場 #13 5/15
  6. 6. 具体的には? “Test Driven Development: By Example” (2002) より。In Test-Driven Development, we・Write new code only if an automated test has failed・Eliminate duplicationThese are two simple rules. わんくま同盟 名古屋勉強会 #25 – TDD道場 #13 6/15
  7. 7. Test Driven Development= 自動化されたテストを使って 開発を駆動するスタイル わんくま同盟 名古屋勉強会 #25 – TDD道場 #13 7/15
  8. 8. 大事なことなのでもう1度「自動化されたテスト」…を作ってからコードを書くのだ。 わんくま同盟 名古屋勉強会 #25 – TDD道場 #13 8/15
  9. 9. 本日の テーマ•Metroスタイル アプリをテスト ファーストする(Windows 8) Metro スタイル アプリ (と、かつて呼ばれていたナ ニカ) をテストファーストで作る時のポイントは? わんくま同盟 名古屋勉強会 #25 – TDD道場 #13 9/15
  10. 10. テストツール•VS2012 Express ⇒MSTest 標準•VS2012 有償版 Visual Studio 2012 有償版の「拡張機能と更新プログラム」ダイアログ ⇒NUnit 等も ・上の画像では「NUnit Test Adapter」がインストー ルされている。Test Adapterがあれば、任意のユニッ 組み込み可能 トテスト フレームワークをIDEから実行できる。 ・ExpressにもMSTestが組み込まれた。他のユニット テスト フレームワークは、IDE外で実行する。 わんくま同盟 名古屋勉強会 #25 – TDD道場 #13 10/15
  11. 11. テストプロジェクト•Metroアプリを 対象にするには、 専用のテスト プロジェクト ・[上] Metroアプリ用の単体テストプロジェクト ・[下] 一般のクラス ライブラリ用 わんくま同盟 名古屋勉強会 #25 – TDD道場 #13 11/15
  12. 12. Metro用テストプロジェクト Metro用.NET•appxmanifest などが含まれる マニフェスト 証明書※ テスト対象と同じケイパビリティ設定が必要※ テスト対象がCOMを使っているとテスト不可 Metroアプリ用の単体テストプロジェクト (Express) わんくま同盟 名古屋勉強会 #25 – TDD道場 #13 12/15
  13. 13. .xaml.cs/.vb のテスト•ユニットテスト では画面をイン スタンス化する のは困難•staticメソッド はテスト可能 画面をインスタンス化しようとすると、スレ違いで 怒られる。 わんくま同盟 名古屋勉強会 #25 – TDD道場 #13 13/15
  14. 14. async/await void → async Task のテスト• 普通に書くと 「すっぽ抜ける」• テストメソッドの テストメソッド中の await で制御が一旦テストラン 型を async Task ナーに戻ると、そこでテスト失敗の監視は終了して しまう。 にする。 テストメソッドの型を void から Task に変える。 (MSTest, NUnit) するとテストランナーは await してくれるので、テ ストメソッドの完了までテスト失敗を監視できる。 ※ 未対応のテストランナーでは、await せずに Task.Wait() して対応する。 わんくま同盟 名古屋勉強会 #25 – TDD道場 #13 14/15
  15. 15. おしまいまとめ・Metro画面には、専用の テストプロジェクト・asyncメソッドでは、非 同期の完了を待機させる わんくま同盟 名古屋勉強会 #25 – TDD道場 #13 15/15

×