老程序员分享:JUnit——assertThat(acture,matcher)

简介: 老程序员分享:JUnit——assertThat(acture,matcher)

"

使用hamcrest之前需要引入相关的jar包,包括hamcrest-core.1.3.jar和hamcrest-library-1.3.jar。

具体引入的方法为:右击JUnit工程——build path——add external archives

这时在真正测试的时候,还需要引入静态方法import static org.hamcrest.Matchers.*;

package com.bjsxt.junit4.test;

import static org.junit.Assert.*;

import static org.hamcrest.Matchers.*;

import org.junit.Test;

import com.bjsxt.junit4.T;

public class TTest {

@Test

public void testAdd() {

int z = new T().add(5,3);

assertThat(z,is(8));

}

}

运行后会报错:

java.lang.SecurityException: class ""org.hamcrest.Matchers""'s //代码效果参考:https://v.youku.com/v_show/id_XNjM5ODc4MDAzNg==.html

signer

原因:

JUnit4和hamcrest包的class loader不是同一个

解决方案如下所示:

(1)删除junit包里面的jar包即eclipse自带的library:JUnit4——右击build path——remove

(2)引入最新版本的library的jar包

1.assertThat

2.使用hamcrest的匹配方法

a)更自然

3.示例

a)assertThat( n, allOf( greaterThan(1), lessThan(15) ) );

assertThat( n, anyOf( greaterThan(16), lessThan(8) ) );

assertThat( n, anything() );

assertThat( str, is( ""bjsxt"" ) );//字符串是不是”bjsxt”

assertThat( str, not( ""bjxxt"" ) );

b)assertThat( str, containsString( ""bjsxt"" ) );

assertThat( str, endsWith(""bjsxt"" ) );

assertThat( str, startsWith( ""bjsxt"" ) );

assertThat( n, equalTo( nExpected ) );

assertThat( str, equalToIgnoringCase( ""bjsxt"" ) ); //字符串忽略大小写是否相等

assertThat( str, equalToIgnoringWhiteSpace( ""bjsxt"" ) ); //字符串忽略空格是否相等

c)assertThat( d, closeTo( 3.0, 0.3 ) );//数值接近3.0 误差不超过0.3

assertThat( d, greaterThan(3.0) );

assertThat( d, lessThan (10.0) );

assertThat( d, greaterThanOrEqualTo (5.0) );//大于等于


//代码效果参考: https://v.youku.com/v_show/id_XNjQwMDEyMTkzNg==.html

assertThat( d, lessThanOrEqualTo (16.0) );

d)assertThat( map, hasEntry( ""bjsxt"", ""bjsxt"" ) );//map里面key-value判断

assertThat( iterable, hasItem ( ""bjsxt"" ) );

assertThat( map, hasKey ( ""bjsxt"" ) );

assertThat( map, hasValue ( ""bjsxt"" ) );


"
image.png
相关文章
Junit4中的新断言assertThat的使用方法
Junit4中的新断言assertThat的使用方法
165 0
|
Java 测试技术 程序员
Java程序员必须要知道的单元测试框架Junit详解
作为一名java开发者,相信你或多或少的接触过单元测试,对于测试来讲它是一门能够区分专业开发人员与业余开发人员的重要学科,这篇文章将对java中最常见的一个单元测试框架junit进行一个梳理和讲解。如果你之前没接触过,那么就通过这篇文章进行一个学习。如果你是一个测试老手,我也希望这篇文章能够加深你的印象。
185 0
Java程序员必须要知道的单元测试框架Junit详解
|
3月前
|
XML Java 测试技术
Spring5入门到实战------17、Spring5新功能 --Nullable注解和函数式注册对象。整合JUnit5单元测试框架
这篇文章介绍了Spring5框架的三个新特性:支持@Nullable注解以明确方法返回、参数和属性值可以为空;引入函数式风格的GenericApplicationContext进行对象注册和管理;以及如何整合JUnit5进行单元测试,同时讨论了JUnit4与JUnit5的整合方法,并提出了关于配置文件加载的疑问。
Spring5入门到实战------17、Spring5新功能 --Nullable注解和函数式注册对象。整合JUnit5单元测试框架
|
22天前
|
Java 程序员 测试技术
Java|让 JUnit4 测试类自动注入 logger 和被测 Service
本文介绍如何通过自定义 IDEA 的 JUnit4 Test Class 模板,实现生成测试类时自动注入 logger 和被测 Service。
21 5
|
2月前
|
SQL JavaScript 前端开发
基于Java访问Hive的JUnit5测试代码实现
根据《用Java、Python来开发Hive应用》一文,建立了使用Java、来开发Hive应用的方法,产生的代码如下
71 6
|
3月前
|
测试技术
单元测试问题之使用TestMe时利用JUnit 5的参数化测试特性如何解决
单元测试问题之使用TestMe时利用JUnit 5的参数化测试特性如何解决
47 2
|
3月前
|
测试技术
如何使用 JUnit 测试方法是否存在异常
【8月更文挑战第22天】
50 0
|
3月前
|
Java 测试技术 Maven
Junit单元测试 @Test的使用教程
这篇文章是一个关于Junit单元测试中`@Test`注解使用的教程,包括在Maven项目中添加Junit依赖、编写带有@Test注解的测试方法,以及解决@Test注解不生效的常见问题。
|
5月前
|
运维 Java 测试技术
Spring运维之boo项目表现层测试加载测试的专用配置属性以及在JUnit中启动web服务器发送虚拟请求
Spring运维之boo项目表现层测试加载测试的专用配置属性以及在JUnit中启动web服务器发送虚拟请求
46 3
|
5月前
|
Java Maven Spring
spring如何使用junit进行测试
spring如何使用junit进行测试
spring如何使用junit进行测试