Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/yukihane/hello-spock
spockを用いたテストを実行するためのMavenプロジェクト作成テスト
https://github.com/yukihane/hello-spock
Last synced: about 2 months ago
JSON representation
spockを用いたテストを実行するためのMavenプロジェクト作成テスト
- Host: GitHub
- URL: https://github.com/yukihane/hello-spock
- Owner: yukihane
- Created: 2015-11-10T03:52:12.000Z (about 9 years ago)
- Default Branch: master
- Last Pushed: 2015-11-10T04:00:35.000Z (about 9 years ago)
- Last Synced: 2023-03-12T02:23:15.705Z (almost 2 years ago)
- Language: Groovy
- Size: 0 Bytes
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.org
Awesome Lists containing this project
README
* これは何?
Maven + Eclipse な構成で [[https://code.google.com/p/spock/][Spock]] Testing Famework を使用してみるためのサンプルプロジェクト。
* 参考
書籍[[https://www.manning.com/books/java-testing-with-spock][Java Testing with Spock]] の Appendix A: Installing Spock
* Eclipse 設定
** Groovy-Eclipse Plugin
現在のところMars向けはSnapshot版しか無い模様(それ未満のバージョンはMarketplaceから入手できる)。
https://github.com/groovy/groovy-eclipse/wiki
update site として http://dist.springsource.org/snapshot/GRECLIPSE/e4.5/ を設定する。
インストールするもの:
- Groovy-Eclipse (Required)
- Groovy Compiler 2.4 Feature
- Spockが2.4を要求するため。これを入れないと2.3になる模様。** Spock Plugin 2.10.0
こちらはMarketplaceにあるものをインストール。
必須ではないはず。** ビルドパス手動追加
test/groovy フォルダを手動でビルドパスに追加する必要がある。
* Eclipseでの実行
Eclipseで実行するためには、(コマンドライン、あるいはEclipse上のプロジェクトを右っクリックすることで実行できる) ~mvn test~ を一度手動で実行する必要がある。
テストフィクスチャファイルを右クリックしてJUnit実行した場合には、上記のコマンド過程で生成されたクラスファイルが用いられるようだ。
従って、 ~mvn test~ を実行せずにコンテキストメニューのJUnitを選択すると、 ~ClassNotFoundException~ が発生したり、修正前のテストフィクスチャの結果になったりする。* 所感
Gradle/IntelliJ のような環境では導入時意識することはないのかもしれないが、Eclipse環境では微妙。
実コードとテストコードに(物理的/心理的に)距離感ができてしまうと、すぐにテストコードが腐ってしまうという経験を考えると、必ずしも導入した場合にメリットが上回るというわけでもなさそう。(物理的/心理的に)距離感ができる、というのは例えば以下のような状況:
- 実コードとテストコードで用いるプログラミング言語が違う
- 実コードとテストコードが異なるMavenモジュールとして存在する
- テストコードをEclipseにインポートしていないと、コンパイルエラーすら認識できない(が開発は問題なく行える)
- CIと開発者が行うテストが違う
- CIではテストをフルに行うが、開発者は時間短縮のためMavenのprofile機能で切り替えていたり…ゼロにする必要はないと思うが、伸びるデメリットを認識することは重要。