Your SlideShare is downloading. ×
TDD勉強会キックオフ for Java
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

TDD勉強会キックオフ for Java

1,925

Published on

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

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

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

No Downloads
Views
Total Views
1,925
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
0
Comments
0
Likes
3
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 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. アジェンダ● テストフレームワーク ● JUnit ● TestNG● ビルドツール ● Ant ● Maven● IDE● インストール作業
  • 3. テストフレームワーク
  • 4. JUnit● Javaの世界ではベーシック● Ver. 4からアノテーションベースとな り使いやすくなった● もちろんIDE向けプラグインも完備
  • 5. 余談ですが、 JUnitは著名なエンジニア 2人が作者です
  • 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. Erich Gamma http://images-jp.amazon.com/images/P/4797311126.09.LZZZZZZZ.jpghttp://javazone.no/incogito/speaker/d5503464-a8c7-41c1-aade-7d256d34d59c/photo
  • 8. ちなみに・・・
  • 9. 最初のデザインパターン本 は、こちらが個人的には オススメ http://ecx.images-amazon.com/images/I/51k0udCitAL.jpg
  • 10. せっかくの勉強会 なので、ひとひねりしたい
  • 11. TestNG● Testing, the Next Generation ● No Good● JUnitとNUnitをベースに開発● アノテーションベース● データ駆動テスト(@DataProvider)● 曰く、全テストをカバーするよ! ● unit, functional, ent-to-end, integration...● 最近のバージョンアップでEclipseプラグインも 使いやすくなった
  • 12. TestNGを賞賛する記事
  • 13. ということで(?)、 TestNGを 使います!
  • 14. ビルドツール
  • 15. Ant● Java版make● 歴史もあり、スタンダード● 小さいところから大きなところまで ● build.xmlの工夫次第 http://www.zoomingin.net/wp-content/uploads/2010/12/Apache-Ant-Logo-java.png
  • 16. Javaのビルドの問題点● 標準のフォルダ構成がない ● プロジェクトによってバラバラ ● 何がどこにあるのか分かりにくい● Jarの依存関係解決が大変 ● Jar地獄(cf. DLL地獄)
  • 17. ● メイバン/メイヴェン● ビルドライフサイクルを定義 ● >mvn package – コンパイル、テスト実行、jar作成まで行う● プラグイン拡張で何でもできる ● コンパイル、テスト、javadoc、jar、war作成、成果物のデプロ イ、レポート作成・・・● 標準構成を定めた(archtype)● Jar依存管理 ● 依存するjarも含めて管理してくれる http://maven.apache.org/images/maven-logo-2.gif
  • 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. 勉強会なので、(より馴染みのない) Mavenを 使います!
  • 20. IDE
  • 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. エディタでも・・・http://www.cse.iitm.ac.in/~osslab/joomla/images/stories/vim-editor_logo.png http://nanasess.net/mt/emacs.jpg
  • 23. ただし● 実装⇔ユニットテストの切り替えが容 易であること● ユニットテストを即座に実行、結果を 確認可能であること
  • 24. インストール作業
  • 25. 共通● JDK6以降● Maven ● 2系、3系どちらでもOK ● 新規なら3系推奨 ● 詳細は本家HPなどを参考に
  • 26. IDE向けプラグイン● Eclipse3.6の場合 ● M2Eclipse – Eclipse向けMaven統合プラグイン ● TestNG for Eclipse ● EGit(必要に応じて)● 「ヘルプ」→「Eclipseマーケットプレ イス」からインストール
  • 27. Mavenからプロジェクト作成> mkdir work> cd work> mvn archetype:create-DgroupId=com.yutax77-DartifactId=tdd-java
  • 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. ● 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. 動作確認> cd work/tdd-java> mvn clean test こんなのが出力されればOK!
  • 31. Eclipse用プロジェクト作成> mvn eclipse:eclipse 以下が生成 ✔ .classpath ✔ .project ✔ .settings
  • 32. Eclipseにインポート● 「ファイル」→「インポート」→「Existing Maven Projects」 クリックでインポート
  • 33. 準備は出来ましたTDDを始めましょう!

×