`

JUnit4的hamcrest示例

 
阅读更多
import org.hamcrest.Description;
import org.hamcrest.Matcher;
import org.hamcrest.StringDescription;
import org.junit.Test;

// 静态引用
import static org.hamcrest.CoreMatchers.*;
import static org.junit.Assert.assertThat;

public class TestHamcrest {
	
	@SuppressWarnings("unchecked")
	@Test
	public void test(){
		
		// is
		assertThat("Hello", is(is(is(is(notNullValue())))));
		assertThat(2 + 2, is(4));
	
		// equalTo 
		assertThat(2 + 2, is(equalTo(4)));
		assertThat(2 + 2, is(is(4)));
		
		// instanceOf
		assertThat("Hello", is(instanceOf(String.class)));
		assertThat("Hello", instanceOf(String.class));
		
		// not
		assertThat("Hello", is(not(instanceOf(Integer.class))));
		
		// notNullValue
		assertThat("Hello", is(notNullValue()));
		
		// nullValue
		assertThat("Hello", is(not(nullValue())));
		
		// any 用于验证class或superClass
		assertThat("Hello", is(any(String.class)));
		
		// allOf 满足所有条件
		assertThat("Hello", is(allOf(notNullValue(), instanceOf(String.class), equalTo("Hello"))));
		
		// anyOf 满足条件之一
		assertThat("Hello", is(anyOf(notNullValue(), instanceOf(String.class), equalTo("GoodBye"))));
		
		// not(allOf) 不满足条件之一
		assertThat("Hello", is(not(allOf(notNullValue(), instanceOf(Integer.class)))));
		
		// not(anyOf) 所有条件都不满足
		assertThat("Hello", is(not(anyOf(nullValue(), instanceOf(Integer.class), equalTo("GoodBye")))));
		
		// anything 永远为真
		assertThat(null, is(anything()));
		
		// sameInstance
		Integer i = 1;
		assertThat(i, is(sameInstance(1)));
		
		// describedAs 重写某个Matcher的描述
		Matcher<?> matcher = describedAs("My description", anything());
		Description desc = new StringDescription().appendDescriptionOf(matcher);
		assertThat("My description", is(desc.toString()));
		
	}
}

 

分享到:
评论

相关推荐

    Junit和hamcrest.zip

    在"Junit和hamcrest.zip"这个压缩包中,可能包含了用于生成HTML测试报告的配置文件、示例代码或依赖库。你可以解压并参考其中的内容,学习如何在你的项目中集成JUnit和Hamcrest,以及如何配置生成HTML测试报告。 ...

    Junit和hamcrest三个jar包

    以下是如何在Junit测试中使用Hamcrest的示例: ```java import static org.hamcrest.CoreMatchers.*; import static org.junit.Assert.assertThat; import org.junit.Test; public class MyTest { @Test public ...

    JUnit4基础文档

    JUnit4使用Hamcrest断言机制,提供了多种断言方式,例如: * `assertThat(n, allOf(greaterThan(1), lessThan(15)))`:断言n大于1小于15 * `assertThat(str, is("bjsxt"))`:断言str等于“bjsxt” * `assertThat(d,...

    Junit4所需jar包

    `hamcrest-core-1.3.jar`是Hamcrest库的核心组件,它是JUnit4的一个关键依赖。Hamcrest提供了一种声明式的匹配器,用于构建断言,使得测试代码更加清晰和易读。在JUnit4中,我们常常会使用Hamcrest的匹配器来定义...

    junit5-samples,使用junit 5的示例应用程序集合。.zip

    4. **断言和比较**:JUnit 5提供了丰富的断言方法,如assertEquals、assertNotEquals、assertTrue、assertFalse等,还有Hamcrest匹配器的集成,使得断言表达更加清晰。 5. **注解的条件化**:通过@EnabledOnOs、@...

    junit代码示例

    - `JUnit4.docx`可能是详细的JUnit4教程文档,包括概念解释和示例代码。 - `JUnit4_src.rar`可能包含了一些JUnit4的测试源码,可以下载后进行实际操作和学习。 - `junit&hamcrest基础jar包.rar`提供了JUnit和...

    junit-4.12.jar + hamcrest-core-1.3.jar

    《Junit 4.12 和 Hamcrest Core 1.3:Java单元测试的重要伙伴》 在Java开发中,单元测试是确保代码质量的关键环节,它可以帮助开发者在早期发现并修复错误,避免了后期集成阶段可能出现的问题。在这里,我们要探讨...

    做单元测试所用jar包,主要是hamcrest-core-1.3.jar junit-4.12.jar

    以下是一个简单的使用JUnit和Hamcrest进行单元测试的Java代码示例: ```java import static org.junit.Assert.assertEquals; import static org.hamcrest.CoreMatchers.is; import org.junit.Test; public class ...

    2、junit学习之hamcrest、testSuite介绍及测试原则

    本文将深入探讨JUnit的学习,特别是结合Hamcrest和TestSuite的使用,以及阐述一些重要的测试原则。 首先,JUnit是Java编程语言的一个单元测试框架,它允许开发者编写可重复执行的测试用例,以验证代码功能的正确性...

    hamcrest-1.3+junit-4.7+junit-4.8.2

    以下是一个简单的示例,展示了 JUnit 和 Hamcrest 结合使用的单元测试: ```java import org.junit.Test; import static org.junit.Assert.assertEquals; import static org.hamcrest.MatcherAssert.assertThat; ...

    几个junit例子

    - `junit&hamcrest基础jar包.rar`是JUnit和Hamcrest库的压缩包,解压后可以导入到Java项目中以运行JUnit测试,同时使用Hamcrest的匹配器。 - `read.txt`可能包含了使用这些库的说明或额外的指南。 掌握JUnit对于...

    junit单元测试架包及依赖集成版(包含hamcrest-all-1.3.jar、junit-4.12.jar、mockito-all-1.10.19.jar)

    junit单元测试所需架包及依赖集成版(包含hamcrest-all-1.3.jar、junit-4.12.jar、mockito-all-1.10.19.jar),引入项目即可直接使用,不依赖网络 使用教程及自动化测试示例 请看...

    JUGF-TDD:JUGF讲座的材料“使用JUnit4和Hamcrest Matchers进行测试驱动的开发”

    在简短介绍了测试驱动开发的基础知识之后,通过一些示例在常规表格中展示了JUnit 4的使用。 我们处理了一些高级功能,包括TestRunner,理论,参数和规则。 此外,还显示了如何使用Hamcrest匹配器提高保证的可读性并...

    JUnit_03.zip

    本资源"JUnit_03.zip"是JUnit4视频教程的一部分,可能包括视频课程、源码示例以及相关文档,旨在帮助学习者深入理解并实践单元测试。 在`JUnit4`中,以下是一些关键知识点: 1. **测试注解(Annotations)**:...

    hamcrest-1.3.zip

    4. 描述性异常:当匹配失败时,Hamcrest会生成详细的错误消息,便于定位问题。 在实际项目中,Hamcrest常与JUnit或其他测试框架结合使用。例如,我们可以在JUnit的assertThat()方法中传递Hamcrest的Matcher,来构建...

    JUnit_01.zip

    源码部分应包含了示例测试类和被测试的业务逻辑代码,学习者可以通过运行这些代码来实践和理解JUnit4的各种功能。解压文件后,可以导入IDE,如Eclipse或IntelliJ IDEA,直接运行测试,观察测试结果,调试问题,从而...

    junit-4.7.jar,junit-4.11.jar

    4. **在Eclipse中配置JUnit**:Eclipse允许用户通过“构建路径”配置来添加JUnit库,并创建JUnit测试项目。配置完成后,可以直接在IDE中运行测试用例,并查看详细的测试结果。 5. **JUnit测试的步骤**:包括创建...

    Spring Boot 单元测试和集成测试实现详解

    import org.springframework.test.context.junit4.SpringRunner; @RunWith(SpringRunner.class) @SpringBootTest public class IntegrationTest { @Test public void testService() { // 在这里进行集成测试 } ...

Global site tag (gtag.js) - Google Analytics