Java のテストの話の自分の理解
テストを書ける環境を準備したい話
あらすじ
- 自分は,Java は,全然知らない.特に最近のはわからない.
- 友だちに Java を教える話があった
- まあ学習目的だから,ユニットテストは書くだろう
- よく知らないけど JUnit かな?
- IDE とかは,Eclipse かな
- 最近のは,assertThat / Matcher を使うらしい
- assertThat / CoreMatcher.is は使えた.
- Collection の比較で,contains ってどこにあんの?
- hamcrest-library にあるらしい.
- eclipse/plugin 配下だと,hamcrest.core しかないような?
一つの目的としては,JUnit 依存をなんとかできるプロジェクトを作る方法を知りたい.
あ,あと,条件として.
- 予想だと,教える人に過去遺産とかルールがありそうだから Eclipse であることはたぶん変えない.
gradle - ビルド,依存関係
- Gradle入門 - Qiita
- GVM ってのが,rbenv 的なもの?
この記事読んだだけで,gradle でいいんじゃないかと思えてきた.XML とか書きたくないじゃないですか.
gradle と Eclipse をどうやって,一緒に使うのか?
- ビルドツールGradleをEclipseで使うための手順 - DukeLab
- Eclipse で Java EE 開発してる人が Gradle の門を叩く - なにか作る
- http://opamp.hatenablog.jp/entry/20120805/1344178962
Eclipse には,plugin があるけど,gradle eclipse を叩かないと駄目なんかな.
gradle wrapper というのがあるらしい
そういえば,そういうのが tddbc のプロジェクトに入っていた気がする.
そうか,だから,wrapper を使わない場合.のようになっていたのか.
途中まとめ
まとめというか,tddbc のプロジェクトクローンすればいいんじゃないか.
という結論に達した.
車輪を読んで自分が勉強しただけでしたね.
Eclipse - 開発環境
Eclipse 以外がいい.という理由がすぐ探せなかったので,あまり何も考えてない.
SublimeText を検討…
名古屋で行ったSublimeTextの勉強会は女性の参加者が多かった。というか半分以上女性だった。ということで、「Sublime Textはモテる」方面のプッシュをしてもいいんじゃないかと思った名古屋の夜(違うだろ)。
— Masayuki Maekawa (@maepon) March 9, 2015
bootstrap を考える
Eclipse を入れて,なんとかしたら,良い感じの状況にしたい.
確認したいこと.
ためしに,tddbc のプロジェクトをクローンしてみる.
$ cd workspace $ git clone https://github.com/tddbc/java_junit.git $ cd java_junit $ ./gradlew eclipse Eclipse > File > import > Existing Projects into Workspace
この場合,生成された .classpath を見るに,$HOME/.gradle/caches を使うようだ.
これだと,.classpath とかをコミットできず,全員が gradlew eclipse をしなければならないが,
ライブラリをダウンロードするためには,最低1回は,全員が gradlew eclipse をすると思えば,そんなに悪くない.
とはいえ,デプロイ用途だから test 用ライブラリ不要,という要件はできてもいいかな.と思うけど,
今回は本筋から外れるから考えない.
Eclipse gradle plugin
Eclipse > Help > Eclipse Marketplace gradle で検索 Gradle IDE Pack をinstall
dukelab さんの記事を参考に,新規プロジェクトを試してみる.
sample project について
Java Quickstart がシンプルなのかな.
File > New > Other > Gradle > Gradle Project > Next > Project Name(gradle_test_qs) : Sample Project(Java Quickstart) > Finish プロジェクトを選択 > Team > Share Project > Git : Next > Use or create repository in parent folder of project : そのロケーションを選択 : create repository > Finish プロジェクトを選択 > Team > Commit
試しに,build.gradle を変更してみる.
modify build.gradle プロジェクトを選択 > Gradle > Refresh All
これで,依存関係とかが変更される気がする.
あと,ディレクトリを見てみたら.こうなっていた.
あまり調べていないのだが,.gradle/, .settings/ は ignore するのかな.
$ git status On branch master Changes not staged for commit: (use "git add <file>..." to update what will be committed) (use "git checkout -- <file>..." to discard changes in working directory) modified: .gradle/2.1/taskArtifacts/cache.properties.lock modified: .gradle/2.1/taskArtifacts/fileHashes.bin modified: .gradle/2.1/taskArtifacts/fileSnapshots.bin modified: .gradle/2.1/taskArtifacts/taskArtifacts.bin modified: .settings/org.eclipse.jdt.core.prefs modified: build.gradle no changes added to commit (use "git add" and/or "git commit -a")
.gitignore に .gradle は含めても良さそう
あと,.settings は,日付が更新されていただけなので,戻しても良さそう.