質問: テストコードとプロダクトコードをリンキングする方法をご存知の方はおられませんでしょうか? 現在,Java でソフトウェアを開発しているのですが,ソフトウェアがやや複雑になってきました. テストをしっかりしたいので,どのテストコードがどのプロダクトコードをテストしているのかを把握しておきたいと思いまして。。。 ご存知の方がおられましたら,教えていただけると幸いです. ちなみにですが,maven を使ってビルドしております. また,SonarQube を使用したことがありますので,これらのツールでリンキングができると嬉しいです. もちろん,その他有用なツールがあれば積極的に使用したいと思います.
回答: Maven 使われているのでしたら src/main/java と src/test/java のように規約に沿ったフォルダ構成にしましょう。プロダクトコードのクラス名が FooBar とすると src/test/java 配下の FooBar と同じパッケージにテストクラスを FooBarTest という規約で作るようにしましょう。 Eclipse だと、Ctrl + 9 でテスティングペア(FooBar と FooBarTest) を行き来できますし、テストクラスが存在しない場合新規作成するか聞いてくれます。 このようにプロダクトコードとテストコードを1対1で作成するのが単体テストの一番わかりやすい構成だと思います。 結合テストなどはクラス単位でできないので、機能単位で XxxIntegrationTest のようなネーミングで作成することが多いです(別プロジェクトにすることもあります)。