狠狠撸

狠狠撸Share a Scribd company logo
罢顿顿勉强会キックオフ
                      for Java




http://upload.wikimedia.org/wikipedia/commons/4/41/Duke_Wave.png   http://bookweb.kinokuniya.co.jp/imgdata/large/4894717115.jpg




                                                            @yutax77
アジェンダ
●   テストフレームワーク
    ●   JUnit
    ●   TestNG
●   ビルドツール
    ●   Ant
    ●   Maven
● IDE
● インストール作业
テスト
フレームワーク
JUnit
● Javaの世界ではベーシック
● Ver. 4からアノテーションベースとな

  り使いやすくなった
● もちろんIDE向けプラグインも完備
余谈ですが、
   JUnitは
著名なエンジニア
 2人が作者です
Kent Beck




                                                  http://www.pej-hed.jp/washo/file/935.jpg
                                                                                             http://ecx.images-amazon.com/images/I/51TZ1A6609L.jpg




http://biography.sophia-it.com/imgb/bike001.png
Erich Gamma




                                                                      http://images-jp.amazon.com/images/P/4797311126.09.LZZZZZZZ.jpg




http://javazone.no/incogito/speaker/d5503464-a8c7-41c1-aade-7d256d34d59c/photo
ちなみに???
最初のデザインパターン本
 は、こちらが個人的には
     オススメ




   http://ecx.images-amazon.com/images/I/51k0udCitAL.jpg
せっかくの勉強会
  なので、
ひとひねりしたい
TestNG
●   Testing, the Next Generation
    ●   No Good
● JUnitとNUnitをベースに開発
● アノテーションベース


● データ駆動テスト(@DataProvider)


● 曰く、全テストをカバーするよ!

    ●   unit, functional, ent-to-end, integration...
●   最近のバージョンアップでEclipseプラグインも
    使いやすくなった
罢别蝉迟狈骋を赏賛する记事
ということで(?)、
  TestNGを
  使います!
ビルドツール
Ant
● Java版make
● 歴史もあり、スタンダード


● 小さいところから大きなところまで

    ●   build.xmlの工夫次第




                   http://www.zoomingin.net/wp-content/uploads/2010/12/Apache-Ant-Logo-java.png
Javaのビルドの問題点
●   標準のフォルダ構成がない
    ●   プロジェクトによってバラバラ
    ●   何がどこにあるのか分かりにくい
●   Jarの依存関係解決が大変
    ●   Jar地獄(cf. DLL地獄)
● メイバン/メイヴェン
● ビルドライフサイクルを定義

    ●   >mvn package
        –   コンパイル、テスト実行、jar作成まで行う
●   プラグイン拡張で何でもできる
    ●   コンパイル、テスト、javadoc、jar、war作成、成果物のデプロ
        イ、レポート作成???
● 標準構成を定めた(archtype)
● Jar依存管理

    ●   依存するjarも含めて管理してくれる

                                    http://maven.apache.org/images/maven-logo-2.gif
补谤肠丑迟测辫别の例
   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
勉強会なので、
(より馴染みのない)
   Mavenを
   使います!
IDE
お好みに合わせて???



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
エディタでも???




http://www.cse.iitm.ac.in/~osslab/joomla/images/stories/vim-editor_logo.png   http://nanasess.net/mt/emacs.jpg
ただし
● 実装?ユニットテストの切り替えが容
  易であること
● ユニットテストを即座に実行、結果を

  確認可能であること
インストール作业
共通
● JDK6以降
● Maven

    ●   2系、3系どちらでもOK
    ●   新規なら3系推奨
    ●   詳細は本家HPなどを参考に
IDE向けプラグイン
●   Eclipse3.6の場合
    ●   M2Eclipse
        –   Eclipse向けMaven統合プラグイン
    ●   TestNG for Eclipse
    ●   EGit(必要に応じて)
●   「ヘルプ」→「Eclipseマーケットプレ
    イス」からインストール
Mavenからプロジェクト作成
> mkdir work
> cd work
> mvn archetype:create
-DgroupId=com.yutax77
-DartifactId=tdd-java
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>
●   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 );
                    }
                }
動作確認
> cd work/tdd-java
> mvn clean test




 こんなのが出力されればOK!
Eclipse用プロジェクト作成
> mvn eclipse:eclipse



                   以下が生成
                    ? .classpath
                    ? .project

                    ? .settings
Eclipseにインポート
●   「ファイル」→「インポート」→「Existing
    Maven Projects」




                         クリックでインポート
準備は出来ました
TDDを始めましょう!

More Related Content

What's hot (20)

贬别补辫厂迟补迟蝉(闯补惫补解析ツールバトル)
贬别补辫厂迟补迟蝉(闯补惫补解析ツールバトル)贬别补辫厂迟补迟蝉(闯补惫补解析ツールバトル)
贬别补辫厂迟补迟蝉(闯补惫补解析ツールバトル)
Yasumasa Suenaga
?
Maven2 plugin
Maven2 pluginMaven2 plugin
Maven2 plugin
Funato Takashi
?
WildFly Swarmではじめる「パーツとしてのJavaEE」
WildFly Swarmではじめる「パーツとしてのJavaEE」WildFly Swarmではじめる「パーツとしてのJavaEE」
WildFly Swarmではじめる「パーツとしてのJavaEE」
Hiroaki NAKADA
?
テストを书こう、鲍苍颈迟测编
テストを书こう、鲍苍颈迟测编テストを书こう、鲍苍颈迟测编
テストを书こう、鲍苍颈迟测编
Hiroto Imoto
?
テスト环境まるごと础飞蝉にのっけてみた
テスト环境まるごと础飞蝉にのっけてみたテスト环境まるごと础飞蝉にのっけてみた
テスト环境まるごと础飞蝉にのっけてみた
Kazuaki Fujikura
?
reg-suitとQA Wolfを活用したVisual Regression Test
reg-suitとQA Wolfを活用したVisual Regression Testreg-suitとQA Wolfを活用したVisual Regression Test
reg-suitとQA Wolfを活用したVisual Regression Test
Kazuyuki Tsuzisaki
?
ゼロから始めた贰2贰テスト
ゼロから始めた贰2贰テストゼロから始めた贰2贰テスト
ゼロから始めた贰2贰テスト
ushiboy
?
Head toward Java 16 (Night Seminar Edition)
Head toward Java 16 (Night Seminar Edition)Head toward Java 16 (Night Seminar Edition)
Head toward Java 16 (Night Seminar Edition)
Yuji Kubota
?
Unity testtool
Unity testtoolUnity testtool
Unity testtool
大介 束田
?
Migration Guide from Java 8 to Java 11 #jjug
Migration Guide from Java 8 to Java 11 #jjugMigration Guide from Java 8 to Java 11 #jjug
Migration Guide from Java 8 to Java 11 #jjug
Yuji Kubota
?
Catch up Java 12 and Java 13
Catch up Java 12 and Java 13Catch up Java 12 and Java 13
Catch up Java 12 and Java 13
Yuji Kubota
?
元気玉的 分散テスト 実行システム TestStreamer
元気玉的 分散テスト 実行システム TestStreamer元気玉的 分散テスト 実行システム TestStreamer
元気玉的 分散テスト 実行システム TestStreamer
Yoshitaka Kawashima
?
Head toward Java 15 and Java 16
Head toward Java 15 and Java 16Head toward Java 15 and Java 16
Head toward Java 15 and Java 16
Yuji Kubota
?
Selenium webdriver使ってみようず
Selenium webdriver使ってみようずSelenium webdriver使ってみようず
Selenium webdriver使ってみようず
Oda Shinsuke
?
システム开発を前进させるための骋谤补诲濒别导入法
システム开発を前进させるための骋谤补诲濒别导入法システム开発を前进させるための骋谤补诲濒别导入法
システム开発を前进させるための骋谤补诲濒别导入法
Takuma Watabiki
?
Gradle a new Generation Build Tool
Gradle a new Generation Build ToolGradle a new Generation Build Tool
Gradle a new Generation Build Tool
Shinya Mochida
?
Apache Archiva を試す
Apache Archiva を試すApache Archiva を試す
Apache Archiva を試す
bouzuya
?
惭补惫别苍へのはじめの一歩
惭补惫别苍へのはじめの一歩惭补惫别苍へのはじめの一歩
惭补惫别苍へのはじめの一歩
祐理 大野
?
Jjug 20140430 gradle_basic
Jjug 20140430 gradle_basicJjug 20140430 gradle_basic
Jjug 20140430 gradle_basic
Takuma Watabiki
?
継続的インテグレーション3分クッキング
継続的インテグレーション3分クッキング継続的インテグレーション3分クッキング
継続的インテグレーション3分クッキング
Takayuki Kondou
?
贬别补辫厂迟补迟蝉(闯补惫补解析ツールバトル)
贬别补辫厂迟补迟蝉(闯补惫补解析ツールバトル)贬别补辫厂迟补迟蝉(闯补惫补解析ツールバトル)
贬别补辫厂迟补迟蝉(闯补惫补解析ツールバトル)
Yasumasa Suenaga
?
WildFly Swarmではじめる「パーツとしてのJavaEE」
WildFly Swarmではじめる「パーツとしてのJavaEE」WildFly Swarmではじめる「パーツとしてのJavaEE」
WildFly Swarmではじめる「パーツとしてのJavaEE」
Hiroaki NAKADA
?
テストを书こう、鲍苍颈迟测编
テストを书こう、鲍苍颈迟测编テストを书こう、鲍苍颈迟测编
テストを书こう、鲍苍颈迟测编
Hiroto Imoto
?
テスト环境まるごと础飞蝉にのっけてみた
テスト环境まるごと础飞蝉にのっけてみたテスト环境まるごと础飞蝉にのっけてみた
テスト环境まるごと础飞蝉にのっけてみた
Kazuaki Fujikura
?
reg-suitとQA Wolfを活用したVisual Regression Test
reg-suitとQA Wolfを活用したVisual Regression Testreg-suitとQA Wolfを活用したVisual Regression Test
reg-suitとQA Wolfを活用したVisual Regression Test
Kazuyuki Tsuzisaki
?
ゼロから始めた贰2贰テスト
ゼロから始めた贰2贰テストゼロから始めた贰2贰テスト
ゼロから始めた贰2贰テスト
ushiboy
?
Head toward Java 16 (Night Seminar Edition)
Head toward Java 16 (Night Seminar Edition)Head toward Java 16 (Night Seminar Edition)
Head toward Java 16 (Night Seminar Edition)
Yuji Kubota
?
Migration Guide from Java 8 to Java 11 #jjug
Migration Guide from Java 8 to Java 11 #jjugMigration Guide from Java 8 to Java 11 #jjug
Migration Guide from Java 8 to Java 11 #jjug
Yuji Kubota
?
Catch up Java 12 and Java 13
Catch up Java 12 and Java 13Catch up Java 12 and Java 13
Catch up Java 12 and Java 13
Yuji Kubota
?
元気玉的 分散テスト 実行システム TestStreamer
元気玉的 分散テスト 実行システム TestStreamer元気玉的 分散テスト 実行システム TestStreamer
元気玉的 分散テスト 実行システム TestStreamer
Yoshitaka Kawashima
?
Head toward Java 15 and Java 16
Head toward Java 15 and Java 16Head toward Java 15 and Java 16
Head toward Java 15 and Java 16
Yuji Kubota
?
Selenium webdriver使ってみようず
Selenium webdriver使ってみようずSelenium webdriver使ってみようず
Selenium webdriver使ってみようず
Oda Shinsuke
?
システム开発を前进させるための骋谤补诲濒别导入法
システム开発を前进させるための骋谤补诲濒别导入法システム开発を前进させるための骋谤补诲濒别导入法
システム开発を前进させるための骋谤补诲濒别导入法
Takuma Watabiki
?
Gradle a new Generation Build Tool
Gradle a new Generation Build ToolGradle a new Generation Build Tool
Gradle a new Generation Build Tool
Shinya Mochida
?
Apache Archiva を試す
Apache Archiva を試すApache Archiva を試す
Apache Archiva を試す
bouzuya
?
惭补惫别苍へのはじめの一歩
惭补惫别苍へのはじめの一歩惭补惫别苍へのはじめの一歩
惭补惫别苍へのはじめの一歩
祐理 大野
?
継続的インテグレーション3分クッキング
継続的インテグレーション3分クッキング継続的インテグレーション3分クッキング
継続的インテグレーション3分クッキング
Takayuki Kondou
?

Similar to 罢顿顿勉强会キックオフ for Java (20)

Nseg20120929
Nseg20120929Nseg20120929
Nseg20120929
hiro345
?
React Native GUIDE
React Native GUIDEReact Native GUIDE
React Native GUIDE
dcubeio
?
どこよりも早い Spring Boot 1.2 解説 #渋谷Java
どこよりも早い Spring Boot 1.2 解説 #渋谷Javaどこよりも早い Spring Boot 1.2 解説 #渋谷Java
どこよりも早い Spring Boot 1.2 解説 #渋谷Java
Toshiaki Maki
?
13016 n分で作るtype scriptでnodejs
13016 n分で作るtype scriptでnodejs13016 n分で作るtype scriptでnodejs
13016 n分で作るtype scriptでnodejs
Takayoshi Tanaka
?
[JavaDo] JAX-RS ハンズオン 第2部
[JavaDo] JAX-RS ハンズオン 第2部[JavaDo] JAX-RS ハンズオン 第2部
[JavaDo] JAX-RS ハンズオン 第2部
haruki ueno
?
Appsody でnodejsのアプリを立ち上げよう!
Appsody でnodejsのアプリを立ち上げよう!Appsody でnodejsのアプリを立ち上げよう!
Appsody でnodejsのアプリを立ち上げよう!
Daisuke Hiraoka
?
究极のバッチフレームワーク(予定)
究极のバッチフレームワーク(予定)究极のバッチフレームワーク(予定)
究极のバッチフレームワーク(予定)
fumoto kazuhiro
?
Personal Cloud Automation
Personal Cloud AutomationPersonal Cloud Automation
Personal Cloud Automation
Etsuji Nakai
?
环境构筑自动化ツールのご绍介
环境构筑自动化ツールのご绍介环境构筑自动化ツールのご绍介
环境构筑自动化ツールのご绍介
Etsuji Nakai
?
骋谤补诲濒别どうでしょう
骋谤补诲濒别どうでしょう骋谤补诲濒别どうでしょう
骋谤补诲濒别どうでしょう
Takuma Watabiki
?
TDC20111031_Groovy_Geb
TDC20111031_Groovy_GebTDC20111031_Groovy_Geb
TDC20111031_Groovy_Geb
Nobuhiro Sue
?
Gws 20130315 gradle_handson
Gws 20130315 gradle_handsonGws 20130315 gradle_handson
Gws 20130315 gradle_handson
Nobuhiro Sue
?
Heroku java
Heroku javaHeroku java
Heroku java
Kazuyuki Kawamura
?
Gradle handson
Gradle handsonGradle handson
Gradle handson
Nemoto Yusuke
?
G*workshop 2011/11/22 Geb+Betamax
G*workshop 2011/11/22 Geb+BetamaxG*workshop 2011/11/22 Geb+Betamax
G*workshop 2011/11/22 Geb+Betamax
Nobuhiro Sue
?
Eclipse を使った java 開発 111126 杉浦
Eclipse を使った java 開発 111126 杉浦Eclipse を使った java 開発 111126 杉浦
Eclipse を使った java 開発 111126 杉浦
urasandesu
?
Visual studio de debug
Visual studio de debugVisual studio de debug
Visual studio de debug
Kazushi Kamegawa
?
SDLoader SeasarCon 2009 Whire
SDLoader SeasarCon 2009 WhireSDLoader SeasarCon 2009 Whire
SDLoader SeasarCon 2009 Whire
Akio Katayama
?
はてなにおける継続的デプロイメントの現状と Docker の導入
はてなにおける継続的デプロイメントの現状と Docker の導入はてなにおける継続的デプロイメントの現状と Docker の導入
はてなにおける継続的デプロイメントの現状と Docker の導入
Yu Nobuoka
?
Nseg20120929
Nseg20120929Nseg20120929
Nseg20120929
hiro345
?
React Native GUIDE
React Native GUIDEReact Native GUIDE
React Native GUIDE
dcubeio
?
どこよりも早い Spring Boot 1.2 解説 #渋谷Java
どこよりも早い Spring Boot 1.2 解説 #渋谷Javaどこよりも早い Spring Boot 1.2 解説 #渋谷Java
どこよりも早い Spring Boot 1.2 解説 #渋谷Java
Toshiaki Maki
?
13016 n分で作るtype scriptでnodejs
13016 n分で作るtype scriptでnodejs13016 n分で作るtype scriptでnodejs
13016 n分で作るtype scriptでnodejs
Takayoshi Tanaka
?
[JavaDo] JAX-RS ハンズオン 第2部
[JavaDo] JAX-RS ハンズオン 第2部[JavaDo] JAX-RS ハンズオン 第2部
[JavaDo] JAX-RS ハンズオン 第2部
haruki ueno
?
Appsody でnodejsのアプリを立ち上げよう!
Appsody でnodejsのアプリを立ち上げよう!Appsody でnodejsのアプリを立ち上げよう!
Appsody でnodejsのアプリを立ち上げよう!
Daisuke Hiraoka
?
究极のバッチフレームワーク(予定)
究极のバッチフレームワーク(予定)究极のバッチフレームワーク(予定)
究极のバッチフレームワーク(予定)
fumoto kazuhiro
?
Personal Cloud Automation
Personal Cloud AutomationPersonal Cloud Automation
Personal Cloud Automation
Etsuji Nakai
?
环境构筑自动化ツールのご绍介
环境构筑自动化ツールのご绍介环境构筑自动化ツールのご绍介
环境构筑自动化ツールのご绍介
Etsuji Nakai
?
骋谤补诲濒别どうでしょう
骋谤补诲濒别どうでしょう骋谤补诲濒别どうでしょう
骋谤补诲濒别どうでしょう
Takuma Watabiki
?
TDC20111031_Groovy_Geb
TDC20111031_Groovy_GebTDC20111031_Groovy_Geb
TDC20111031_Groovy_Geb
Nobuhiro Sue
?
Gws 20130315 gradle_handson
Gws 20130315 gradle_handsonGws 20130315 gradle_handson
Gws 20130315 gradle_handson
Nobuhiro Sue
?
G*workshop 2011/11/22 Geb+Betamax
G*workshop 2011/11/22 Geb+BetamaxG*workshop 2011/11/22 Geb+Betamax
G*workshop 2011/11/22 Geb+Betamax
Nobuhiro Sue
?
Eclipse を使った java 開発 111126 杉浦
Eclipse を使った java 開発 111126 杉浦Eclipse を使った java 開発 111126 杉浦
Eclipse を使った java 開発 111126 杉浦
urasandesu
?
SDLoader SeasarCon 2009 Whire
SDLoader SeasarCon 2009 WhireSDLoader SeasarCon 2009 Whire
SDLoader SeasarCon 2009 Whire
Akio Katayama
?
はてなにおける継続的デプロイメントの現状と Docker の導入
はてなにおける継続的デプロイメントの現状と Docker の導入はてなにおける継続的デプロイメントの現状と Docker の導入
はてなにおける継続的デプロイメントの現状と Docker の導入
Yu Nobuoka
?

罢顿顿勉强会キックオフ for Java