专注Java教育14年 全国咨询/投诉热线:400-8080-105
动力节点LOGO图
始于2009,口口相传的Java黄埔军校
首页 学习攻略 Java学习 Java字符串非空判断

Java字符串非空判断

更新时间:2022-09-26 10:27:06 来源:动力节点 浏览1412次

1.概述

在某些情况下,我们需要断言给定的字符串是否为空。在 Java 中有很多方法可以做这样的断言。

让我们在这个快速教程中探索一些测试断言技术。

2.Maven依赖

我们需要先获取一些依赖项。在 Maven 项目中,我们可以在pom.xml中添加以下依赖项:

JUnit:

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

Hamcrest 核心:

<dependency>
    <groupId>org.hamcrest</groupId>
    <artifactId>hamcrest-core</artifactId>
    <version>1.3</version>
</dependency>

Apache Commons 朗:

<dependency>
    <groupId>org.apache.commons</groupId>
    <artifactId>commons-lang3</artifactId>
    <version>3.12.0</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>31.0.1-jre</version>
</dependency>

3.使用 JUnit

我们将使用String类中的isEmpty方法和JUnit 中的Assert类来验证给定的String是否为空。由于isEmpty 方法在输入String为空时返回 true,我们可以将它与 assertFalse方法一起使用:

assertFalse(text.isEmpty());

或者,我们也可以使用:

assertTrue(!text.isEmpty());

考虑到 text可能为空,另一种方法是使用assertNotEquals方法进行相等性检查:

assertNotEquals("", text);

或者:

assertNotSame("", text);

4.使用 Hamcrest 核心

Hamcrest 是一个著名的框架,它提供了在 Java 生态系统中常用于单元测试的匹配器。

我们可以使用 Hamcrest CoreMatchers 类进行空字符串检查:

assertThat(text, CoreMatchers.not(isEmptyString()));

isEmptyString方法在IsEmptyString类中可用。

这也会在失败时返回 AssertionError,但输出更有用:

java.lang.AssertionError: 
Expected: not an empty string
     but: was ""

如果需要,要验证 String 既不为空也不为 null,我们可以使用isEmptyOrNullString:

assertThat(text, CoreMatchers.not(isEmptyOrNullString()));

要了解CoreMatchers类的其他方法,请阅读这篇之前发表的文章。

5.使用 Apache Commons Lang

Apache Commons Lang库为java.lang API提供了许多帮助实用程序。

StringUtils类提供了一种我们可以用来检查空字符串的方法:

assertTrue(StringUtils.isNotBlank(text));

失败时,这将返回一个简单的AssertionError。

6. 使用 AssertJ

AssertJ 是一个开源的、社区驱动的库,用于在 Java 测试中编写流畅和丰富的断言。

AbstractCharSequenceAssert.isNotEmpty()方法 验证实际的CharSequence不为空,或者换句话说,它不为 null 并且长度为 1 或更多:

Assertions.assertThat(text).isNotEmpty()

失败时,将打印输出:

java.lang.AssertionError: 
Expecting actual not to be empty

7. 使用谷歌番石榴

Guava是 Google 提供的一组核心库。

Guava Strings类中的isNullOrEmpty方法 可用于验证 String 是否为空(或 null):

assertFalse(Strings.isNullOrEmpty(text));

当没有其他输出消息失败时,这也会返回AssertionError 。

提交申请后,顾问老师会电话与您沟通安排学习

免费课程推荐 >>
技术文档推荐 >>