1概要
あるシナリオでは、与えられた String が空かどうかをアサートする必要があります。 Javaでそのようなアサーションを実行する方法はかなりあります。
-
このクイックチュートリアルでは、** これらのテストアサーションテクニックのいくつかを探りましょう。
2 Mavenの依存関係
最初にいくつかの依存関係を取得する必要があります。 Mavenプロジェクトでは、 pom.xml に次の依存関係を追加できます。
-
JUnit :**
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
</dependency>
-
Hamcrest Core :**
<dependency>
<groupId>org.hamcrest</groupId>
<artifactId>hamcrest-core</artifactId>
<version>1.3</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.8</version>
</dependency>
-
AssertJ :**
<dependency>
<groupId>org.assertj</groupId>
<artifactId>assertj-core</artifactId>
<version>3.11.1</version>
</dependency>
-
Google Guava :**
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>26.0-jre</version>
</dependency>
3 JUnit を使う
assertFalse(text.isEmpty());
または、我々はまた使用することができます:
assertTrue(!text.isEmpty());
-
text がnullになる可能性があるため、** 別の方法は assertNotEquals メソッドを使用して等価性チェックを行うことです。
assertNotEquals("", text);
または
assertNotSame("", text);
JUnitアサーションに関する詳細なガイドhttps://www.baeldung.com/junit-assertions[ここ]をチェックしてください。
失敗すると、これらすべてのアサーションは__AssertionErrorを返します。
4 Hamcrest Core を使う
Hamcrest は、Javaエコシステムの単体テストに一般的に使用されるmatcherを提供する有名なフレームワークです。
-
空の文字列チェックにHamcrest __CoreMatchers __classを利用することができます
assertThat(text, CoreMatchers.not(isEmptyString()));
isEmptyString メソッドはhttp://hamcrest.org/JavaHamcrest/javadoc/1.3/org/hamcrest/text/IsEmptyString.html[ IsEmptyString ]クラスで利用できます。
失敗した場合もAssertionErrorを返しますが、より役立つ出力が得られます。
java.lang.AssertionError:
Expected: not an empty string
but: was ""
必要に応じて、Stringが空でもnullでもないことを確認するために、 isEmptyOrNullString を使用できます。
assertThat(text, CoreMatchers.not(isEmptyOrNullString()));
CoreMatchers クラスの他のメソッドについては、https://www.baeldung.com/hamcrest-core-matchers[この]以前に公開された記事を読んでください。
5 Apache Commons Lang を使う
Apache Commons Lang ライブラリには、 java.lang API用の多数のヘルパーユーティリティがあります。
-
StringUtils クラスは、空の文字列** をチェックするために使用できるメソッドを提供します。
assertTrue(StringUtils.isNotBlank(text));
失敗した場合、これは単純な__AssertionErrorを返します。
Apache Commons Langによる文字列処理の詳細については、https://www.baeldung.com/string-processing-commons-lang[this]の記事を参照してください。
6. AssertJ を使う
AssertJ はオープンソースで、Javaテストで流暢で豊かなアサーションを書くためのコミュニティ主導のライブラリです。
メソッド AbstractCharSequenceAssert.isNotEmpty() は、実際の CharSequence が空ではないこと、つまりnullではなく、長さが1以上であることを検証します。
Assertions.assertThat(text).isNotEmpty()
失敗した場合、これは出力を表示します。
java.lang.AssertionError:
Expecting actual not to be empty
私たちはAssertJ here に関する素晴らしい紹介記事を持っています。
7. Google Guava を使用する
Guava は、Googleが提供するコアライブラリのセットです。
-
Guava Strings クラスのメソッド isNullOrEmpty を使用して、Stringが空(またはnull)かどうかを確認することができます。
assertFalse(Strings.isNullOrEmpty(text));
他の出力メッセージなしで失敗した場合も、これは AssertionError を返します。
Guava APIに関する他の記事を調べるには、https://www.baeldung.com/category/guava/[ここ]のリンクをたどってください。
8結論
このクイックチュートリアルでは、与えられた String が空かどうかをアサートする方法を見つけました。
いつものように完全なコードスニペットはhttps://github.com/eugenp/tutorials/tree/master/java-strings[over on GitHub]で利用可能です。