1.概述
在某些情况下,我们需要断言如果给定字符串是空还是不空。在Java中有相当多的方法来实现这样的断言。
让我们探讨其中一些测试断言技术在这个快速教程中。
2.Maven的依赖关系
我们首先需要获取一些依赖项。在Maven项目中,我们可以将以下依赖项添加到pom.xml:
junit junit 4.12
<依赖> < groupId > org。hamcrest-core 1.3 依赖>
org.apache.commons commons-lang3 3.11
<依赖> < groupId > org。assertj artifactId> assertj-core 3.11.1
<依赖> < groupId > com.google。 26.0-jre 依赖>
3.使用JUnit
我们将使用isEmpty方法从字符串上课的时候断言类来验证是否给定字符串不是空的。自isEmpty方法如果输入字符串是空的我们可以把它和assertFalse方法:
assertFalse (text.isEmpty ());
或者,我们还可以使用:
assertTrue (! text.isEmpty ());
认为自文本可能是零,另一种方法是使用assertNotEquals方法:
assertNotEquals(”、文本);
或者:
assertNotSame(”、文本);
查看我们关于JUnit断言的深入指南在这里。
所有这些断言失败时将返回AssertionError。
4.使用Hamcrest核心
Hamcrest是一个著名的框架,它提供了匹配器,通常用于Java生态系统中的单元测试。
我们可以利用哈姆克雷斯特CoreMatchers类用于空字符串检查:
为了(文本、CoreMatchers.not (isEmptyString ()));
的isEmptyString方法中可用IsEmptyString类。
当失败时,它也返回一个AssertionError,但是有一个更有用的输出:
java.lang.AssertionError: Expected:不是一个空字符串,而是:was ""
如果需要,为了验证String既不是空也不是空,我们可以使用isEmptyOrNullString:
为了(文本、CoreMatchers.not (isEmptyOrNullString ()));
学习其他的方法金宝搏官网188beCoreMatchers类阅读这以前发表的文章。
5.使用Apache Commons Lang
的Apache Commons Lang类提供了许多帮助工具. langAPI。
的stringutil类提供了一个方法,我们可以用来检查空字符串:
assertTrue (StringUtils.isNotBlank(文本));
失败时,将返回一个简单的AssertionError。
要了解更多关于使用Apach金宝搏官网188bee Commons Lang进行字符串处理的信息,请阅读这篇文章。
6.使用AssertJ
AssertJ是一个开源的、社区驱动的库,用于在Java测试中编写流畅而丰富的断言。
该方法AbstractCharSequenceAssert.isNotEmpty ()验证实际的CharSequence进行不是空的,或者,换句话说,它不是null,长度为1或更多:
Assertions.assertThat(文本).isNotEmpty ()
失败时,输出如下:
assertionerror:期望actual不为空
我们有一篇关于AssertJ的很好的介绍性文章在这里。
7.使用谷歌番石榴
番石榴是谷歌提供的一组核心库。
该方法isNullOrEmpty从番石榴字符串类可以用来验证String是否为空(或零):
assertFalse (Strings.isNullOrEmpty(文本));
这也返回一个AssertionError当失败而没有其他输出消息时。
要探索我们关于番石榴API的其他文章,请点击链接在这里。
8.结论
在这个快速教程中,我们了解了如何断言如果给定字符串是空还是不空。
如往常一样,完整的代码片段可以在在GitHub。