Javaオプションには特定の値があることを表明する
1. 概要
オプションオブジェクトを返すメソッドをテストする場合、オプションに値があるかどうかをチェックするか、その中の値をチェックするアサーションを作成する必要がある場合があります。
この短いチュートリアルでは、 JUnitとAssertJの両方の関数を使用してこれらのアサーションを作成する方法を見ていきます。
2. オプションが空かどうかをテストする
オプションのに値があるかどうかを確認するだけでよい場合は、isPresentまたはisEmptyでアサートできます。
2.1. テストオプションには値があります
オプションに値がある場合、オプション.isPresentでアサートできます。
assertTrue(optional.isPresent());
ただし、AssertJライブラリは、これをより流暢に表現する方法を提供します。
assertThat(optional).isNotEmpty();
2.2. オプションのテストは空です
JUnitを使用すると、ロジックを逆にすることができます。
assertFalse(optional.isPresent());
また、Java 11以降では、Optional.isEmptyを使用できます。
assertTrue(optional.isEmpty());
ただし、AssertJは私たちにもきちんとした代替手段を提供します。
assertThat(optional).isEmpty();
3. オプションの値のテスト
多くの場合、存在または不在だけでなく、オプションの内の値をテストする必要があります。
3.1. JUnitアサーションの使用
Optional.get を使用して値を提供し、その:にアサーションを書き込むことができます。
Optional<String> optional = Optional.of("SOMEVALUE");
assertEquals("SOMEVALUE", optional.get());
ただし、 得る 例外が発生する可能性があり、テストの失敗を理解するのが難しくなります。 したがって、値が最初に存在するかどうかを主張することをお勧めします。
assertTrue(optional.isPresent());
assertEquals("SOMEVALUE", optional.get());
ただし、オプションはequalsメソッドをサポートしているため、一般的な平等アサーションの一部として、正しい値を含むオプションを使用できます。
Optional<String> expected = Optional.of("SOMEVALUE");
Optional<String> actual = Optional.of("SOMEVALUE");
assertEquals(expected, actual);
3.2. AssertJを使用する
AssertJ 、 を使用すると、hasValueの流暢なアサーションを使用できます。
assertThat(Optional.of("SOMEVALUE")).hasValue("SOMEVALUE");
4. 結論
この記事では、オプションをテストするいくつかの方法について説明しました。
ビルトインがどのように JUnit
最後に、AssertJアサーションを確認しました。これにより、オプションの値を確認するための流暢な言葉が得られます。
いつものように、この記事で紹介するコードは、GitHubでから入手できます。