clairvyの日記

思ったこと,調べたことを書きます

Java のテストの話の自分の理解

テストを書ける環境を準備したい話

あらすじ

  • 自分は,Java は,全然知らない.特に最近のはわからない.
  • 友だちに Java を教える話があった
  • まあ学習目的だから,ユニットテストは書くだろう
    • よく知らないけど JUnit かな?
  • IDE とかは,Eclipse かな
  • 最近のは,assertThat / Matcher を使うらしい
  • assertThat / CoreMatcher.is は使えた.
  • Collection の比較で,contains ってどこにあんの?
  • hamcrest-library にあるらしい.
    • eclipse/plugin 配下だと,hamcrest.core しかないような?

一つの目的としては,JUnit 依存をなんとかできるプロジェクトを作る方法を知りたい.

あ,あと,条件として.

  • 予想だと,教える人に過去遺産とかルールがありそうだから Eclipse であることはたぶん変えない.

車輪を見る

tddbc の資料を見てみる.

いかにも,JUnit っぽい.

gradle, maven を使う方法が書いてある.タスクランナーとかビルドツール的な?

gradle - ビルド,依存関係

この記事読んだだけで,gradle でいいんじゃないかと思えてきた.XML とか書きたくないじゃないですか.

gradle と Eclipse をどうやって,一緒に使うのか?

Eclipse には,plugin があるけど,gradle eclipse を叩かないと駄目なんかな.

gradle wrapper というのがあるらしい

そういえば,そういうのが tddbc のプロジェクトに入っていた気がする.
そうか,だから,wrapper を使わない場合.のようになっていたのか.

途中まとめ

まとめというか,tddbc のプロジェクトクローンすればいいんじゃないか.
という結論に達した.
車輪を読んで自分が勉強しただけでしたね.

Eclipse - 開発環境

Eclipse 以外がいい.という理由がすぐ探せなかったので,あまり何も考えてない.

SublimeText を検討…

bootstrap を考える

Eclipse を入れて,なんとかしたら,良い感じの状況にしたい.
確認したいこと.

  • Eclipse 内で,依存関係が解決してよしなになるか.
  • 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 は,日付が更新されていただけなので,戻しても良さそう.

jar を入れる

ググったけど,直接 Eclipse に jar を入れたり,という道を選択することはあまり無いようだ.
あっても,maven でなんとかする.という記事くらいしか見付からない.

まとめ

grails plugins を eclipse で使うということでいいかな.