上一节说了junit的一些基本概念,主要使用assert做一些基本的判断。但很多时候使用assert做判断,并不方便,如果要判断某几个值是否为true或false,这时使用hamcrest来判断就会方便许多。hamcrest就是专门为增强junit来提供的框架。它可以有效的使用一些语义比较清楚的名字来做判断,一些常用的方法如下:
1、下面使用hamcrest在上一节的例子上继续操作。使用junit中的assertThat进行断言,第一个参数为实际值,第二个参数为hamcrest的表达式。
在上一节的测试类TestCalcuate中,先静态导入hamcrest包中的Matchers类,如下图:
2、添加下图所示的测试方法,在测试方法testHamcrest方法中,把junit与hamcrest结合使用,方法assertThat方法是junit的方法,greaterThan方法是hamcrest的方法,greaterThan判断第一个参数是否>第二个参数,这里就是判断50是否大于20。
3、如果要判断第一个参数是否大于20,并且小于60,这时可以使用正面的方式:
4、这时使用junit进行测试,如果测试通过,代表50确实大于49,小于60,如果出现如下错误:
5、其原因是因为资源路径里junit的jar包在hamcrest的jar包上面,java运行环境先从junit包中查找allOf方法,但是这里使用的是hamcrest的allOf方法。从资源路径里把两个包的路径换一下就可以了。如下图,选择hamcrest的jar包点击up,就可以反hamcrest的jar包放在junit的jar包的上面,java运行环境就会优先从hamcrest包中查allOf方法。
6、使用hamcrest还可以判断一个字符串是否以某个字符串开始或结尾。
7、在一个项目中,可能有很多的测试类,如果每个测试类都要点击运行,那么成百上千个类都需要测试,这会是个比较繁重的工作,这时可以使用可以使用junit的jar包中提供的Suite来解决这个问题,上面的例子中只有一个测试类名叫TestCalcuate,现在新建两个测试类,分别为TestA、TestB,如下所示:
package cn.whp.util; import org.junit.Test; public class TestA { @Test public void testA(){ System.out.println("TestA"); } }
package cn.whp.util; import org.junit.Test; public class TestB { @Test public void testB(){ System.out.println("TestB"); } }
8、然后新建一个测试类TestSuite,这个类可以把以上三个类,TestCalcuate、TestA、TestB,这三个测试方法同事进行测试。如下所示,
@RunWith(Suite.class)//代表以Suite来运行这个测试类
@SuiteClasses({TestA.class,TestB.class,TestCalcuate.class})//代表要测试的类有哪些。
package cn.whp.util; import org.junit.runner.RunWith; import org.junit.runners.Suite; import org.junit.runners.Suite.SuiteClasses; @RunWith(Suite.class) @SuiteClasses({TestA.class,TestB.class,TestCalcuate.class}) public class TestSuite { public void testSuite(){ System.out.println("TestA"); } }
如上操作完成后点击运行,就可以看到所有的测试方法全通过的信息,如下所示:
测试原则:
1、建议创建一个专门的source folder--->test来编写测试类代码。上面例子就新建一个test的资源包。
2、测试类的包应该保持和需要测试的类一致。上面的例子中Calcuate类在src/cn/whp/util包中,相应的测试类就在test/cn/whp/util中。
3、测试单元中的每个测试方法都必须可以独立执行,不相互依赖,没有顺序。
相关推荐
Junit4.12与Hamcrest1.3是Java编程领域中两个重要的单元测试框架,它们为开发者提供了方便、强大的测试工具。在这个压缩包中,包含了以下四个JAR文件: 1. `junit-4.12.jar`:这是JUnit 4.12的主要库文件,它提供了...
Eclipse Testcast Testsuite则是基于JUnit的一种扩展,它提供了更强大的测试管理和执行能力,使得在Eclipse环境中进行测试工作更为便捷高效。本文将对JUnit、Eclipse Testcast Testsuite以及它们的相关源码和文档...
Junit 4.12 和 hamcrest-core 1.3 是两个重要的测试框架,它们在软件开发中扮演着至关重要的角色,特别是在Java编程环境中。本文将深入探讨这两个工具包的功能、用途以及如何在项目中使用它们。 首先,Junit 是一个...
总的来说,"junit4hamcrest jar包"是Java开发中进行单元测试时的重要工具,它将JUnit的测试框架和Hamcrest的匹配器完美结合,让测试代码更加优雅,提高了测试的可读性和可维护性。对于任何Java开发者来说,理解和...
你可以解压并参考其中的内容,学习如何在你的项目中集成JUnit和Hamcrest,以及如何配置生成HTML测试报告。 总之,JUnit和Hamcrest是Java开发中的重要工具,它们可以帮助我们编写可维护的测试代码,并通过可视化的...
标题中的“junit-4.12.jar + hamcrest 亲测可用的”指的是一个包含Junit 4.12版本和Hamcrest 1.3版本的测试框架组合,这个组合经过验证是能够正常工作的。在Java开发中,单元测试是确保代码质量的重要环节,而Junit...
《Junit与Hamcrest在Java单元测试中的应用详解》 单元测试是软件开发过程中不可或缺的一环,它确保了代码的正确性,提高了软件质量。在Java领域,Junit和Hamcrest是两个非常重要的单元测试工具。本文将深入探讨这两...
本文将详细介绍JUnit4.13和Hamcrest-all-1.3这两个jar包及其源码。 JUnit4是JUnit系列的一个版本,自2004年发布以来,已经发展到4.x系列,提供了许多新特性和改进。在4.13这个版本中,它包含了一些重要的更新和修复...
JUnit4.11 + hamcrest1.3 是一个用于Java编程语言的测试框架组合,它极大地简化了单元测试的过程。这两个库是Java开发者在进行软件质量保证时的重要工具。 JUnit4.11 是JUnit系列的一个版本,是一个广泛使用的开源...
本资源包含的"Junit + Hamcrest + Mockito 单元测试 Jar包"是一个用于Java应用程序单元测试的工具集合,分别对应了三个流行的测试框架:JUnit、Hamcrest和Mockito。 JUnit是一个开源的Java单元测试框架,广泛应用于...
junit4.11+hamcrest-all-1.3.jar, junit4.11+hamcrest-all-1.3.jar, junit4.11+hamcrest-all-1.3.jar, junit4.11+hamcrest-all-1.3.jar
JavaSE测试类必备的两个关键库是`junit-4.12.jar`和`hamcrest-core-1.3.jar`。这两个库在Java开发中扮演着重要角色,特别是对于单元测试和质量保证。 首先,我们来详细了解`junit-4.12.jar`。JUnit是Java编程语言中...
JUnit是Java编程语言中最常用的单元测试框架之一,它允许开发者编写可执行的测试用例,以验证代码的各个部分是否按预期工作。JUnit是开放源码的,且得到了广泛的社区支持,因此它总是保持着更新,以适应Java生态系统...
JUnit 4.12 和 Hamcrest Core 1.3 是两个在Java开发中广泛使用的单元测试框架的重要组件。本文将详细介绍这两个库的功能、用途以及如何在Eclipse集成开发环境中使用它们进行单元测试。 JUnit是Java编程语言的一个...
JUnit 4.7 和 Hamcrest-Core-1.3 是两个重要的Java单元测试工具,它们在软件开发过程中扮演着至关重要的角色。JUnit 是一个开源的、基于Java的单元测试框架,而Hamcrest是一个匹配器库,提供了丰富的断言方法,使得...
Junit-4.11和Hamcrest-Core-1.3是两个关键的Java单元测试工具,广泛应用于Java项目的测试场景。 **Junit-4.11** 是JUnit库的一个版本,一个流行的开源测试框架,特别设计用于Java编程语言。JUnit提供了一种结构化的...
在Java中,JUnit是广泛使用的单元测试框架,而Hamcrest则是一个匹配库,提供了丰富的断言方法,使得测试表达更加清晰。下面我们将深入探讨这两个库以及如何在Java项目中使用它们。 **JUnit4.jar**: JUnit4是JUnit...
《Junit 4.12 和 Hamcrest Core 1.3:Java单元测试的重要伙伴》 在Java开发中,单元测试是确保代码质量的关键环节,它可以帮助开发者在早期发现并修复错误,避免了后期集成阶段可能出现的问题。在这里,我们要探讨...