[解決済み] 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リポジトリはかなり遅いと思います)?
関連
-
ecplise プロンプトが表示されます。"選択したものは起動できません。" "最近の起動はありません。"
-
IDEAError:javaの依存性エラー。Annotation processing is not supported for module cycles...(アノテーション処理はモジュールサイクルではサポートされていません。
-
[解決済み] JavaでInputStreamを読み込んでStringに変換するにはどうすればよいですか?
-
[解決済み] JavaでNullPointerExceptionを回避する方法
-
[解決済み] JavaにおけるHashMapとHashtableの違いは何ですか?
-
[解決済み] Java Mapの各エントリを効率的に反復処理するには?
-
[解決済み] Javaでメモリーリークを発生させるにはどうしたらいいですか?
-
[解決済み] Javaにおけるpublic、protected、package-private、privateの違いは何ですか?
-
[解決済み] JavaでArrayListではなくLinkedListを使用するのはいつですか?
-
[解決済み] JavaでStringをintに変換するにはどうしたらいいですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
Eclipse の問題 アクセス制限。タイプ 'jfxrt' はAPI解決されていません。
-
アクセス制限です。タイプ 'Application' は API ではない(必要なライブラリに制限がある)。
-
Java の switch case 文で必要な定数式の問題の解決法
-
java.sql.SQLException: 結果セットの開始前
-
API の戻り値を処理するために ResponseEntity を使用する
-
JDK8 の Optional.of と Optional.ofNullable メソッドの違いと使い方を説明する。
-
Javaがエラーで実行される、選択が起動できない、最近起動したものがない
-
git pull appears現在のブランチに対するトラッキング情報がありません。
-
テストが空であるかどうかを判断するためのオプションの処理
-
switch case文のcaseの後の列挙定数は列挙型なし