1概要

あるシナリオでは、与えられた

String

が空かどうかをアサートする必要があります。 Javaでそのようなアサーションを実行する方法はかなりあります。

  • このクイックチュートリアルでは、** これらのテストアサーションテクニックのいくつかを探りましょう。


2 Mavenの依存関係

最初にいくつかの依存関係を取得する必要があります。 Mavenプロジェクトでは、

pom.xml

に次の依存関係を追加できます。

<dependency>
    <groupId>junit</groupId>
    <artifactId>junit</artifactId>
    <version>4.12</version>
</dependency>

<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>

<dependency>
    <groupId>org.assertj</groupId>
    <artifactId>assertj-core</artifactId>
    <version>3.11.1</version>
</dependency>

<dependency>
    <groupId>com.google.guava</groupId>
    <artifactId>guava</artifactId>
    <version>26.0-jre</version>
</dependency>


3 JUnit

を使う





  • isEmpty

    メソッドを使用します。 JUnitのhttp://junit.sourceforge.net/javadoc/org/junit/Assert.html[

    Assert

    ]クラスとともに.html[String]

    クラスを指定して、指定された

    String

    が空でないかどうかを検証します。**

    isEmpty

    以降入力

    String

    が空の場合、methodはtrueを返し、

    assertFalse

    メソッドと一緒に使用できます。

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]で利用可能です。