Java の Student クラスの単体テスト

JavaBeginner
オンラインで実践に進む

はじめに

このプロジェクトでは、JUnit テストフレームワークを使用して、単純なStudentクラスの単体テストを書く方法を学びます。このプロジェクトでは、テスト環境のセットアップ、Studentクラスのgetおよびsetメソッドのテストケースの作成、および実装の正しさの検証が行われます。

🎯 タスク

このプロジェクトでは、以下のことを学びます。

  • プロジェクトに JUnit 依存関係をインポートする方法
  • StudentTestクラスをセットアップし、テスト用のStudentオブジェクトを初期化する方法
  • Studentクラスのgetメソッドのテストケースを書く方法
  • Studentクラスのsetメソッドのテストケースを書く方法

🏆 成果

このプロジェクトを完了すると、以下のことができるようになります。

  • Maven と JUnit を使用してテスト環境をセットアップする
  • Java クラスに対して効果的な単体テストを書く
  • テストケースを使用して実装の正しさを検証する
  • 保守性と信頼性の高いコードを書くためのベストプラクティスを適用する

JUnit 依存関係をインポートする

このステップでは、プロジェクトに JUnit 依存関係をインポートする方法を学びます。

  1. ~/project/StudentClass ディレクトリにある pom.xml ファイルを開きます。
  2. <dependencies> セクションの中に以下の依存関係を追加します。
<dependency>
  <groupId>junit</groupId>
  <artifactId>junit</artifactId>
  <version>4.11</version>
  <scope>test</scope>
</dependency>

これにより、単体テストの作成と実行に必要な JUnit 4 の依存関係がプロジェクトに追加されます。

Student テストクラスをセットアップする

このステップでは、StudentTestクラスをセットアップし、テスト用のStudentオブジェクトを初期化する方法を学びます。

  1. ~/project/StudentClass/src/test/java/com/labex ディレクトリにある StudentTest.java ファイルを開きます。
  2. StudentTestクラスに以下の @Before アノテーション付きのメソッドを追加します。
private Student studentTest;

@Before
public void setUp() {
    studentTest = new Student("Tom", "male", 25);
}

この setUp() メソッドは、各テストメソッドの前に実行され、与えられた名前、性別、年齢で新しい Student オブジェクトを作成します。

取得および設定メソッドのテストを書く

このステップでは、Studentクラスのgetおよびsetメソッドを検証するためのテストを書きます。

  1. StudentTestクラスに以下のテストメソッドを追加します。
@Test
public void testGetName() {
    assertEquals("Tom", studentTest.getName());
}

@Test
public void testGetAge() {
    assertEquals(25, studentTest.getAge());
}

@Test
public void testGetSex() {
    assertEquals("male", studentTest.getSex());
}

これらのテストにより、StudentクラスのgetName()getAge()、およびgetSex()メソッドが正しく機能していることが確認されます。

  1. StudentTestクラスに以下のテストメソッドを追加します。
@Test
public void testSetName() {
    studentTest.setName("Jimmy");
    assertEquals("Jimmy", studentTest.getName());
}

@Test
public void testSetAge() {
    studentTest.setAge(26);
    assertEquals(25, studentTest.getAge()); // 年齢は変更されないはず
}

@Test
public void testSetSex() {
    studentTest.setSex("female");
    assertEquals("female", studentTest.getSex());
}

これらのテストにより、StudentクラスのsetName()setAge()、およびsetSex()メソッドが正しく機能していることが確認されます。

テストケースを実行する

テストケースを実行するには、次の手順に従います。

  1. ターミナルで、以下のコマンドを使用して StudentClass プロジェクト ディレクトリに移動します。
cd ~/project/StudentClass/
  1. 次のコマンドを実行してテストケースを実行します。
mvn test

出力は以下に似たものになります。

[INFO] -------------------------------------------------------
[INFO]  T E S T S
[INFO] -------------------------------------------------------
[INFO] Running com.labex.StudentTest
[INFO] Tests run: 6, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.099 s - in com.labex.StudentTest
[INFO]
[INFO] Results:
[INFO]
[INFO] Tests run: 6, Failures: 0, Errors: 0, Skipped: 0
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  4.237 s
[INFO] Finished at: 2024-05-12T12:23:30Z
[INFO] ------------------------------------------------------------------------

これらのテストにより、Student クラスの getNamegetAgegetSexsetNamesetAge、および setSex などのメソッドが、アサーションを通じて予想される動作を検証することで正しく機能していることが確認されます。

まとめ

おめでとうございます!このプロジェクトを完了しました。実験技術を向上させるために、LabEx でさらに多くの実験を行ってみましょう。

✨ 解答を確認して練習✨ 解答を確認して練習✨ 解答を確認して練習✨ 解答を確認して練習