テストのセットアップメソッドや、ファイルからドメインを生成するメソッド等々の便利メソッドを作るとします。マルチモジュールの場合、基本的にはプロダクトコードしか依存しないので、テストの便利メソッドは共有しません。
今回の記事では、テストコードを共有して、テストの便利メソッドを1つのモジュールに書けばすべてのモジュールで使用できる状態にします。
環境
- gradle
- 7.4.1
対応
Gradleの依存関係でテストコードを共有するようにします。
testImplementation project(':モジュール名').sourceSets.test.output // kirimaru-coreの記載したテストコードを共有します testImplementation project(':kirimaru-core').sourceSets.test.output
ソースコード
kirimaru-repositoryからkirimaru-coreのテストコードを依存させています。
- cucumber-sample/build.gradle at 149d2635f080aad1b53507ad77ed44d950163cb0 · hirotoKirimaru/cucumber-sample · GitHub
- cucumber-sample/BookMapperTests.java at 149d2635f080aad1b53507ad77ed44d950163cb0 · hirotoKirimaru/cucumber-sample · GitHub
終わりに
各モジュールで似たようなセットアップメソッドを作成していて、非常に面倒だと思っていました。マルチモジュールにしているからしかたないと考えていたのですが、1行で別モジュールから簡単に依存できてよかったです。
まぁ、本音を言えば、JavaでFactory_bot、Factory_boyがあるならもうちょっと楽なんですがね…。