Java >> Java チュートリアル >  >> Tag >> assert

Java Optional に特定の値があることをアサートする

1.概要

Optional を返すメソッドをテストしているとき オプション 値を持っているか、その中の値をチェックしてください。

この短いチュートリアルでは、JUnit と AssertJ の両方の関数を使用してこれらのアサーションを作成する方法を見ていきます。

2.オプションが空かどうかをテストする

任意の 値がある場合、isPresent でアサートできます または isEmpty .

2.1.テストオプション 価値がある

オプションの場合 値がある場合、Optional.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. Optional の値をテストする

Optional 内の値をテストしたいことがよくあります。 単に存在または不在ではなく。

3.1. JUnit の使用 アサーション

Optional.get を使用できます 値を提供し、それに対してアサーションを記述します:

Optional<String> optional = Optional.of("SOMEVALUE");
assertEquals("SOMEVALUE", optional.get());

ただし、get を使用して 例外が発生する可能性があり、テストの失敗を理解するのが難しくなります。そのため、最初に値が存在するかどうかをアサートすることを好むかもしれません:

assertTrue(optional.isPresent());
assertEquals("SOMEVALUE", optional.get());

ただし、オプション equals メソッドをサポート 、だから Optional を使用できます 一般的な等値アサーションの一部として正しい値を含む:

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.結論

この記事では、Optional をテストするいくつかの方法を見てきました。 .

組み込みの JUnit アサーションを isPresent で使用する方法を見てきました そして取得 . Optional.equals についても説明しました オプションを比較する方法を提供します

最後に、AssertJ アサーションを調べました。これにより、Optional をチェックする流暢な言語が得られます。 値。

いつものように、この記事で紹介するコードは GitHub で入手できます。


Java タグ