例を使用したJUnit5アノテーション
JUnit 5 次世代のJUnitです。目標は、JVMでの開発者側のテストのための最新の基盤を作成することです。これには、Java 8以降に焦点を当てるだけでなく、さまざまなスタイルのテストを有効にすることも含まれます。
MavenとGradleの両方を使用できます。
Mavenを使用している場合は、次の依存関係をpom.xml
に追加する必要があります。 ファイル:
<dependencies>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-api</artifactId>
<version>5.3.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-params</artifactId>
<version>5.3.1</version>
<scope>test</scope>
</dependency>
</dependencies>
@JUnit5アノテーション
Junit 5での最も明らかな変更の1つは、テストクラスとメソッドを公開する必要がなくなったことです。
それでは、最も一般的なJUnit5アノテーションのリストを見ていきましょう。
@Test
このアノテーションは、メソッドがテストメソッドであることを示します。このアノテーションは属性をとらないことに注意してください。
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.assertEquals;
class JUnit5Test {
@Test
void helloJUnit5() {
assertEquals(10, 5+5);
}
}
@ParameterizedTest
パラメータ化されたテストにより、異なる引数を使用してテストを複数回実行できます。通常の@Test
と同じように宣言されます メソッドが、@ParameterizedTest
を使用します 代わりに注釈。
さらに、各呼び出しの引数を提供するソースを少なくとも1つ宣言してから、テストメソッドで引数を使用する必要があります。
たとえば、次の例は、@ValueSource
を使用するパラメーター化されたテストを示しています。 引数のソースとして文字列配列を指定するための注釈。
例:
import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.ValueSource;
import static org.junit.jupiter.api.Assertions.assertTrue;
class JUnit5Test {
@ParameterizedTest
@ValueSource(strings = { "cali", "bali", "dani" })
void endsWithI(String str) {
assertTrue(str.endsWith("i"));
}
}
@RepeatedTest
JUnit 5には、メソッドに@RepeatedTest
のアノテーションを付けるだけで、指定された回数だけテストを繰り返すことができます。 必要な繰り返しの総数を指定します。
繰り返されるテストを呼び出すたびに、通常の@Test
の実行と同じように動作します。 メソッド。
これは、Seleniumを使用したUIテストで特に役立ちます。
import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.api.RepeatedTest;
import org.junit.jupiter.api.RepetitionInfo;
import org.junit.jupiter.api.TestInfo;
import static org.junit.jupiter.api.Assertions.assertEquals;
class JUnit5Test {
@RepeatedTest(value = 5, name = "{displayName} {currentRepetition}/{totalRepetitions}")
@DisplayName("RepeatingTest")
void customDisplayName(RepetitionInfo repInfo, TestInfo testInfo) {
int i = 3;
System.out.println(testInfo.getDisplayName() +
"-->" + repInfo.getCurrentRepetition()
);
assertEquals(repInfo.getCurrentRepetition(), i);
}
}
テストの結果からわかるように、i==3
、テストは合格です。それ以外の場合は失敗します。
@DisplayName
テストクラスとテストメソッドは、テストランナーとテストレポートによって表示されるカスタム表示名を宣言できます。
例:
import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.TestInfo;
@DisplayName("DisplayName Demo")
class JUnit5Test {
@Test
@DisplayName("Custom test name")
void testWithDisplayName() {
}
@Test
@DisplayName("Print test name")
void printDisplayName(TestInfo testInfo) {
System.out.println(testInfo.getDisplayName());
}
}
@BeforeEach
@BeforeEach
アノテーションは、JUnit4の@Before
と同様に、アノテーションが付けられたメソッドを各テストメソッドの前に実行する必要があることを示します。 。
例:
import org.junit.jupiter.api.*;
class JUnit5Test {
@BeforeEach
void init(TestInfo testInfo) {
String callingTest = testInfo.getTestMethod().get().getName();
System.out.println(callingTest);
}
@Test
void firstTest() {
System.out.println(1);
}
@Test
void secondTest() {
System.out.println(2);
}
}
出力:
firstTest
1
secondTest
2
@AfterEach
このアノテーションは、JUnit4の@After
と同様に、アノテーションが付けられたメソッドを各テストメソッドの後に実行する必要があることを示します。 。たとえば、各テストの後にテストでプロパティをリセットする必要がある場合は、メソッドに@AfterEach
でアノテーションを付けることができます。 そのタスクのために。
import org.junit.jupiter.api.*;
class JUnit5Test {
@Test
void firstTest() {
System.out.println(1);
}
@Test
void secondTest() {
System.out.println(2);
}
@AfterEach
void after(TestInfo testInfo) {
String callingTest = testInfo.getTestMethod().get().getName();
System.out.println(callingTest);
}
}
出力:
1
firstTest
2
secondTest
@BeforeAll
このアノテーションは、すべてのテストの前にメソッドを実行します。これは、JUnit4の@BeforeClass
に類似しています。 。 @BeforeAll
アノテーションは通常、テストのさまざまなものを初期化するために使用されます。
例:
import org.junit.jupiter.api.*;
class JUnit5Test {
@BeforeAll
static void init() {
System.out.println("Only run once before all tests");
}
@Test
void firstTest() {
System.out.println(1);
}
@Test
void secondTest() {
System.out.println(2);
}
}
出力:
Only run once before all tests
1
2
@AfterAll
@AfterAll
アノテーションは、すべてのテストが実行された後にのみ、アノテーション付きメソッドを実行するために使用されます。これは、JUnit4の@AfterClass
に類似しています。 。 このアノテーションを使用して、すべてのテストの終了時にすべてのプロセスを破棄または終了します。
例:
import org.junit.jupiter.api.*;
class JUnit5Test {
@Test
void firstTest() {
System.out.println(1);
}
@Test
void secondTest() {
System.out.println(2);
}
@AfterAll
static void after() {
System.out.println("Only run once after all tests");
}
}
出力:
1
2
Only run once after all tests
@Tag
このアノテーションを使用して、クラスレベルまたはメソッドレベルで、フィルタリングテスト用のタグを宣言できます。
@Tag
アノテーションは、選択したテストでテストパックを作成する場合に役立ちます。
例:
import org.junit.jupiter.api.Tag;
import org.junit.jupiter.api.Test;
@Tag("smoke")
class JUnit5Test {
@Test
@Tag("login")
void validLoginTest() {
}
@Test
@Tag("search")
void searchTest() {
}
}
@Disabled
@Disabled
アノテーションは、クラスまたはメソッドレベルでテストを無効化またはスキップするために使用されます。これは、JUnit4の@Ignore
に類似しています。 。
クラスレベルで宣言すると、すべての@test
メソッドはスキップされます。 @Disabled
を使用する場合 メソッドレベルでは、注釈付きメソッドのみが無効になります。
例:
@Disabled
テストクラスを無効にするために使用されます:
import org.junit.jupiter.api.Disabled;
import org.junit.jupiter.api.Test;
@Disabled
class DisabledClassDemo {
@Test
void testWillBeSkipped() {
}
}
例:
@Disabled
テストメソッドを無効にするために使用されるアノテーション:
import org.junit.jupiter.api.Disabled;
import org.junit.jupiter.api.Test;
class DisabledTestsDemo {
@Disabled
@Test
void testWillBeSkipped() {
}
@Test
void testWillBeExecuted() {
}
}
-
LinuxFINDコマンドと例
Linuxの新規インストールに含まれるファイルの数を知っていますか? PopOSを使用する場合!例としてLinuxディストリビューションには、31,000を超えるファイルがあります。それは、ドキュメントの作成、音楽の保存、PDFのダウンロード、または写真の整理を開始する前です。 このため、必要なときにLinuxで適切なファイルまたはフォルダーを見つけるのは困難です。この記事では、Linux FINDコマンドの使用方法を学び、可能な限りすべての例を紹介します。 LinuxFINDコマンド構文 構文とは、単語またはコマンドを組み合わせる方法を指します。単語をシャッフルするだけで通常の
-
例を使用したJavaArrayListメソッド
この投稿では、最も一般的なJavaArrayListメソッドと各メソッドのコード例について説明します。 ArrayList classはサイズ変更可能な配列です。通常、ArrayListを使用します リストのサイズが事前にわからない場合。 ArrayList クラスはjava.utilにあります パッケージ。 ArrayListを作成する方法 ArrayListを作成してアイテムを追加するには、ArrayListをインスタンス化します。 Stringなどの指定されたタイプのオブジェクト またはInteger 。 add()に注意してください メソッドは、ArrayListの次の位置に項