JUnit フレームワークの接続
Java コードをテストするために、 JUnitと呼ばれる優れたフレームワークがあります。それは素晴らしく機能し、常に更新され、非常に人気があり、もちろん Intellij IDEA は非常に緊密に統合されています。
現在、誰もがこのフレームワークの 5 番目のバージョンであるJUnit 5を使用していますが、多くのプロジェクトではまだ 4 番目のバージョンを見つけることができます。大きな違いはありませんが、とにかく最新のものを見てみましょう。あなたが積極的にテストを書き始める頃には、私の選択を承認してくれると思います。
では、JUnit をプロジェクトに追加するにはどうすればよいでしょうか? Maven を学習すると、次のコードを pom.xml に追加するだけで簡単になります。
<dependency> <groupId>org.junit.jupiter</groupId> <artifactId>junit-jupiter-engine</artifactId> <version>5.8.1</version> <scope>test</scope> </dependency>
ちなみに、Maven にビルド段階 (テスト段階) でテストを実行させたい場合は、pom.xml にフラグメントを 1 つ追加する必要があります。
<plugin> <artifactId>maven-surefire-plugin</artifactId> <version>2.19.1</version> <dependencies> <dependency> <groupId>org.junit.platform</groupId> <artifactId>junit-platform-surefire-provider</artifactId> <version>1.3.2</version> </dependency> </dependencies> </plugin>
@テストアノテーション
テストしたいクラスがあるとします。これを行うための最良の方法は何ですか? 抽象クラスをテストするのは難しいので、いくつかの例から始めましょう:)
加算、減算、乗算、除算の 4 つの基本演算を実行できるCalculatorクラスがあるとします。書いてみましょう:
class Calculator {
public int add(int a, int b) {
return a+b;
}
public int sub(int a, int b) {
return a-b;
}
public int mul (int a, int b) {
return a*b;
}
public int div(int a, int b) {
return a/b;
}
}
このクラスのメソッドをテストしたいと思います。将来的には何かが変更され、すべてが機能しなくなるかどうかはわかりません。どのようにテストを作成すればよいでしょうか?
別のクラスを作成する必要があります。これを行うには、通常、同じ名前を使用し、 Test サフィックス を追加します。メソッドごとに、少なくとも 1 つのテスト メソッドを追加する必要があります。例:
class CalculatorTest {
@Test
public void add() {
}
@Test
public void sub() {
}
@Test
public void mul() {
}
@Test
public void div() {
}
}
以前はメソッド名がtest という単語で始まる必要がありましたが、現在は必要ありません。
JUnit テストの例
CalculatorTestクラスのメソッドをテストする例をいくつか書いてみましょう。
class CalculatorTest {
@Test
public void add() {
Calculator calc = new Calculator();
int result = calc.add(2, 3);
assertEquals(5, result);
}
@Test
public void sub() {
Calculator calc = new Calculator();
int result = calc.sub(10, 10);
assertEquals(0, result);
}
@Test
public void mul() {
Calculator calc = new Calculator();
int result = calc.mul(-5, -3);
assertEquals(15, result);
}
@Test
public void div() {
Calculator calc = new Calculator();
int result = calc.div(2, 3);
assertEquals(0, result);
}
}
一般的な JUnit テストは次のようになります。興味深いことに、ここでは特別なメソッドassertEquals()が使用されています。名前に等しいという単語が示すように、渡されたパラメータを比較します。
assertEquals()に渡されたパラメータが等しくない場合、メソッドは例外をスローし、テストは失敗します。この例外によって、他のテストの実行が妨げられることはありません。
GO TO FULL VERSION