TDD勉強会キックオフ for Java

2,167 views
2,092 views

Published on

「テスト駆動開発入門」の写経をJavaで始めるにあたって、準備するものの説明。

Published in: Technology
0 Comments
3 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
2,167
On SlideShare
0
From Embeds
0
Number of Embeds
6
Actions
Shares
0
Downloads
0
Comments
0
Likes
3
Embeds 0
No embeds

No notes for slide

TDD勉強会キックオフ for Java

  1. 1. TDD勉強会キックオフ for Javahttp://upload.wikimedia.org/wikipedia/commons/4/41/Duke_Wave.png http://bookweb.kinokuniya.co.jp/imgdata/large/4894717115.jpg @yutax77
  2. 2. アジェンダ● テストフレームワーク ● JUnit ● TestNG● ビルドツール ● Ant ● Maven● IDE● インストール作業
  3. 3. テストフレームワーク
  4. 4. JUnit● Javaの世界ではベーシック● Ver. 4からアノテーションベースとな り使いやすくなった● もちろんIDE向けプラグインも完備
  5. 5. 余談ですが、 JUnitは著名なエンジニア 2人が作者です
  6. 6. Kent Beck http://www.pej-hed.jp/washo/file/935.jpg http://ecx.images-amazon.com/images/I/51TZ1A6609L.jpghttp://biography.sophia-it.com/imgb/bike001.png
  7. 7. Erich Gamma http://images-jp.amazon.com/images/P/4797311126.09.LZZZZZZZ.jpghttp://javazone.no/incogito/speaker/d5503464-a8c7-41c1-aade-7d256d34d59c/photo
  8. 8. ちなみに・・・
  9. 9. 最初のデザインパターン本 は、こちらが個人的には オススメ http://ecx.images-amazon.com/images/I/51k0udCitAL.jpg
  10. 10. せっかくの勉強会 なので、ひとひねりしたい
  11. 11. TestNG● Testing, the Next Generation ● No Good● JUnitとNUnitをベースに開発● アノテーションベース● データ駆動テスト(@DataProvider)● 曰く、全テストをカバーするよ! ● unit, functional, ent-to-end, integration...● 最近のバージョンアップでEclipseプラグインも 使いやすくなった
  12. 12. TestNGを賞賛する記事
  13. 13. ということで(?)、 TestNGを 使います!
  14. 14. ビルドツール
  15. 15. Ant● Java版make● 歴史もあり、スタンダード● 小さいところから大きなところまで ● build.xmlの工夫次第 http://www.zoomingin.net/wp-content/uploads/2010/12/Apache-Ant-Logo-java.png
  16. 16. Javaのビルドの問題点● 標準のフォルダ構成がない ● プロジェクトによってバラバラ ● 何がどこにあるのか分かりにくい● Jarの依存関係解決が大変 ● Jar地獄(cf. DLL地獄)
  17. 17. ● メイバン/メイヴェン● ビルドライフサイクルを定義 ● >mvn package – コンパイル、テスト実行、jar作成まで行う● プラグイン拡張で何でもできる ● コンパイル、テスト、javadoc、jar、war作成、成果物のデプロ イ、レポート作成・・・● 標準構成を定めた(archtype)● Jar依存管理 ● 依存するjarも含めて管理してくれる http://maven.apache.org/images/maven-logo-2.gif
  18. 18. archtypeの例 mvn archetype:create -DgroupId=com.example -DartifactId=sample 単純なjar作成プロジェクト sample │ pom.xml pom.xmlの場所 │ └─src ├─main・src配下の構成 │ └─java・UTの場所 │ └─com │ └─example │ App.java │ └─test └─java └─com └─example AppTest.java
  19. 19. 勉強会なので、(より馴染みのない) Mavenを 使います!
  20. 20. IDE
  21. 21. お好みに合わせて・・・http://brokendish.org/wp-content/uploads/2011/07/Screenshot-Eclipse.png http://www.ipentec.com/document/ImageHandler.ashx?id=netbeans-70-install-11 http://blog.japila.pl/wp-content/uploads/2011/06/idea10.5-about.png
  22. 22. エディタでも・・・http://www.cse.iitm.ac.in/~osslab/joomla/images/stories/vim-editor_logo.png http://nanasess.net/mt/emacs.jpg
  23. 23. ただし● 実装⇔ユニットテストの切り替えが容 易であること● ユニットテストを即座に実行、結果を 確認可能であること
  24. 24. インストール作業
  25. 25. 共通● JDK6以降● Maven ● 2系、3系どちらでもOK ● 新規なら3系推奨 ● 詳細は本家HPなどを参考に
  26. 26. IDE向けプラグイン● Eclipse3.6の場合 ● M2Eclipse – Eclipse向けMaven統合プラグイン ● TestNG for Eclipse ● EGit(必要に応じて)● 「ヘルプ」→「Eclipseマーケットプレ イス」からインストール
  27. 27. Mavenからプロジェクト作成> mkdir work> cd work> mvn archetype:create-DgroupId=com.yutax77-DartifactId=tdd-java
  28. 28. JUnit→TestNGに切り替え● pom.xml <url>http://maven.apache.org</url> + <build> + <plugins> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-compiler-plugin</artifactId> + <version>2.3.2</version> + <configuration> + <source>1.6</source> + <target>1.6</target> + </configuration> + </plugin> + </plugins> + </build> <dependencies> <dependency> - <groupId>junit</groupId> - <artifactId>junit</artifactId> - <version>3.8.1</version> + <groupId>org.testng</groupId> + <artifactId>testng</artifactId> + <version>6.1</version> <scope>test</scope> </dependency> </dependencies>
  29. 29. ● AppTest.java -import junit.framework.Test; -import junit.framework.TestCase; -import junit.framework.TestSuite; +import static org.testng.Assert.*; +import org.testng.annotations.*; /** * Unit test for simple App. */ public class AppTest - extends TestCase { - /** - * Create the test case - * - * @param testName name of the test case - */ - public AppTest( String testName ) - { - super( testName ); - } - - /** - * @return the suite of tests being tested - */ - public static Test suite() - { - return new TestSuite( AppTest.class ); - } - /** * Rigourous Test :-) */ + @Test public void testApp() { assertTrue( true ); } }
  30. 30. 動作確認> cd work/tdd-java> mvn clean test こんなのが出力されればOK!
  31. 31. Eclipse用プロジェクト作成> mvn eclipse:eclipse 以下が生成 ✔ .classpath ✔ .project ✔ .settings
  32. 32. Eclipseにインポート● 「ファイル」→「インポート」→「Existing Maven Projects」 クリックでインポート
  33. 33. 準備は出来ましたTDDを始めましょう!

×