如何断言String不为空

时间:2017-05-20 14:09:38

标签: java unit-testing junit hamcrest

断言maximumPoolSize=100在junit中不为空可以通过以下方式完成:

string

我的问题是:有没有更好的方法来检查这一点 - 例如:

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

11 个答案:

答案 0 :(得分:40)

在hamcrest 1.3中,您可以使用Matchers#isEmptyString

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

在hamcrest 2.0中,您可以使用Matchers#emptyString

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

UPDATE - 请注意:“Maven central有一些名为java-hamcrest和hamcrest-java的额外工件,版本为2.0.0.0。请不要使用这些工件,因为它们是中止的努力重新包装不同的罐子。“来源:hamcrest.org/JavaHamcrest/distributables

答案 1 :(得分:4)

您可以使用JUnit自己的 $("#detil_type").change(function (){ $.post("/simulasikredit/change_price", { detil_type: $("#detil_type").val() }, function(response) { $("#viewer").html(response); } ); }); 断言:

assertNotEquals

答案 2 :(得分:3)

我使用assertThat(string, is(not(equalTo(""))))。与其他涉及检查字符串.length().isEmpty()方法结果的方法不同,这将在测试失败时显示错误消息中字符串的内容。

编辑:实际上,不,我不会。我会按照{{3}中的说明使用emptyString()isEmptyString()匹配器赞成那一个,而不是这一个。)

答案 3 :(得分:3)

考虑使用Apache的StringUtils.isNotEmpty()方法,该方法是对空字符串进行空安全检查。

assertTrue(StringUtils.isNotEmpty(str));

答案 4 :(得分:2)

如果你已经使用commons-lang3,你可以这样做,这也会检查空和空格:

assertTrue(StringUtils.isNotBlank(string));

如他们的javadocs所述:

  

isNotBlank:检查CharSequence是否为空(""),不是空,而不是空白。

答案 5 :(得分:1)

编写您自己的TestHelper类,您可以在其中收集断言的自定义方法,例如

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

答案 6 :(得分:1)

您还可以使用名为AssertJ的库,它可以为您的代码提供出色的流畅断言。检查可以优雅:

assertThat(myString).isNotEmpty();

答案 7 :(得分:1)

您可以使用 Google Guava 库方法Strings.isNullOrEmpty

来自JavaDoc

  

公共静态布尔isNullOrEmpty(@Nullable字符串)

     

如果给定的字符串为null或为空字符串,则返回true。

     

考虑使用nullToEmpty(java.lang.String)标准化字符串引用。   如果这样做,则可以使用String.isEmpty()代替此方法,并且   您将不需要特殊的null安全形式的方法,例如   要么使用String.toUpperCase(java.util.Locale)。或者,如果您想   规范化“在另一个方向”,将空字符串转换为null,   您可以使用emptyToNull(java.lang.String)。

     

参数

     

string-要检查的字符串引用

     

返回

     

如果字符串为null或为空字符串,则为true

答案 8 :(得分:0)

您要断言的是字符串的大小。

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

答案 9 :(得分:0)

不带吊坠:

    assertFalse(StringUtils.isEmpty(string));

答案 10 :(得分:0)

如果您使用的是JUnit5,则可以使用assertNotNull("yourString");来声明您的String不为null还是null。

或者,如果您需要消息,则可以使用

assertNotNull("your String", "String is empty");