1. ホーム
  2. java

[解決済み] Javaユニットテスト、ディレクトリレイアウト [終了しました]

2023-08-01 20:06:01

質問

Java コードのユニットテスト一式を構築するとき、ソースコードに関連してテストコードをどこに配置するかの慣習がありますか?

たとえば、私がディレクトリ /java というディレクトリがあり、その中にたくさんの .java のソースファイルを含んでいる場合、テストケースを /java に置くのが良いのでしょうか? /java/test .

後者が望ましい場合、コードの内部をどのようにテストするかですが、その際に private / protected クラスのメンバは、パッケージの外では利用できないのですか?

どのように解決するのですか?

ソースコードが独自のディレクトリルート下にある場合でも、テストを元のクラスと同じパッケージ内に置くことができます。

PROJECT_ROOT
    +--- src/
    +----test/

クラスを宣言することができます com.foo.MyClass の下に src とそのテスト com.foo.MyClassTest の下に test .

プライベートメンバーへのアクセスに関しては リフレクション を使ってメソッドを呼び出すことができます (アクセス性を変更するには Class.getDeclaredMethod.setAccessible でアクセシビリティを変更する)、あるいはtestng/junit5のようなものを使ってソースコード自体にアノテーション駆動のテストを置くこともできます(私は個人的にはこれは悪い考えだと思います)。

のプロジェクトをチェックしてみてはいかがでしょうか? java.net にあるいくつかのプロジェクトをチェックして、彼らがどのように物事を整理したかを見てみましょう。 スイングラブ (SVNリポジトリはかなり遅いと思います)?