web-dev-qa-db-ja.com

assertThat文字列が空ではない方法

stringがjunitで空でないことをアサートするには、次の方法があります。

 assertTrue(!string.isEmpty());
 assertFalse(string.isEmpty());
 assertThat(string.toCharArray(), is(not(emptyArray())); // (although this didn't compile)

私の質問は:これをチェックするより良い方法があります-次のようなもの:

assertThat(string, is(not(empty()))

24
Armine

Hamcrest 1.3では、 Matchers#isEmptyString を使用できます。

assertThat(string, not(isEmptyString()));

Hamcrest 2.0では、 Matchers#emptyString を使用できます。

assertThat(string, is(not(emptyString())));

UPDATE-「Maven Centralには、バージョン2.0.0.0のJava-hamcrestおよびhamcrest-Javaという追加のアーティファクトがあります。これらを使用しないでください。異なるjarを再パッケージ化する作業が中断されているためです。」ソース:hamcrest.org/JavaHamcrest/distributables

44
holi-java

JUnit独自のassertNotEqualsアサーションを使用できます。

Assert.assertNotEquals( "", string );
4
Stefan Birkner

assertThat(string, is(not(equalTo(""))))を使用します。文字列の.length()または.isEmpty()メソッドの結果をチェックすることを含む他のアプローチとは異なり、これはテストが失敗したときにエラーメッセージで文字列の内容を表示します。

編集:実際、いいえ、そうしません。で説明されているように、emptyString()またはisEmptyString()マッチャーを使用します holi-Java's answer 。これに投票してください。これではありません。)

3
Wyzard

Apacheの StringUtils.isNotEmpty() メソッドの使用を検討してください。これは、空の文字列に対するnullセーフチェックです。

assertTrue(StringUtils.isNotEmpty(str));
3
entpnerd

すでに commons-lang を使用している場合は、これを行うことができます。これにより、nullと空白もチェックされます。

assertTrue(StringUtils.isNotBlank(string));

Javadocsで説明されているように:

isNotBlank:CharSequenceが空( "")ではなく、nullではなく、空白だけではないかどうかを確認します。

2
Russ Jackson

アサーション用のカスタムメソッドを収集できる独自のTestHelperクラスを作成します。

 public static void assertEmpty(String input) {...}
1
Matt

また、 AssertJ というライブラリを使用して、コードに流codeなアサーションを提供することもできます。エレガントでチェックすることができます:

assertThat(myString).isNotEmpty();

1
Tomasz Bawor

Google GuavaLibraryメソッドを使用できます Strings.isNullOrEmpty

JavaDocから

public static boolean isNullOrEmpty(@Nullable String string)

指定された文字列がnullまたは空の文字列の場合、trueを返します。

NullToEmpty(Java.lang.String)で文字列参照を正規化することを検討してください。その場合、このメソッドの代わりにString.isEmpty()を使用できます。また、String.toUpperCase(Java.util.Locale)のような特別なnullセーフなメソッドも必要ありません。または、「他の方向で」空の文字列をnullに変換して正規化する場合は、emptyToNull(Java.lang.String)を使用できます。

パラメータ

string-チェックする文字列参照

戻り値

文字列がnullまたは空の文字列である場合はtrue

1
Saikat Sengupta

アサートするのは、文字列のサイズです。

assertThat("String is empty",
       string.length(),
       greaterThan(0));
0
Simulant