Junit学习笔记(三)

这篇博客介绍了Junit的assertThat测试方法,重点讨论了在使用该方法时需要引入的jar包,包括junit4-4.8.2.jar、hamcrest-library-1.3.jar和hamcrest-core-1.3.jar,并指出这些版本与assertThat的引入有关。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Junit 的 测试方法 assertThat 示例

assertThat方法需要引入三个jar包(junit4-4.8.2.jar,hamcrest-library-1.3.jar,hamcrest-core-1.3.jar)

不同的版本用到的jar包的版本不同,assertThat方法是junit 4 之后引入的

/**
 * @author KerYang
 * 
 */

package com.keryang.junit.instance.junittest;

import static org.junit.Assert.*;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

//assertThat(),方法需要以下类中的方法
import static org.hamcrest.Matchers.*;

import org.junit.Test;

public class assertThatTest {

	@Test
	public void test() {
		// fail("Not yet implemented");
		
		// 方法结果值  res 是否大于5,小于7
		int res = 7;
		assertThat(res, allOf(greaterThan(5), lessThan(9)));
		
		// 方法结果值 res 是否满足 大于16 或者 小于 8 中的一个
		assertThat(res, anyOf(greaterThan(16), lessThan(8)));
		
		// 方法结果值 str 可以为任何值
		String str = null;
		assertThat(str, anything());
		
		// 方法结果值 str 不是 "keryang"
		assertThat(str, not("keryang"));
		
		// 方法结果值 str 的值是否是 "keryang"
		str = "keryang";
		assertThat(str, is("keryang"));
		
		// 方法结果值 str 中是否包含字符串 "keryang"
		assertThat(str, containsString("keryang"));
		
		// 方法结果值 str 是否以字符串 "keryang" 结尾
		assertThat(str, endsWith("keryang"));
		
		// 方法结果值 str 是否以字符串 "keryang" 开头
		assertThat(str, startsWith("keryang"));
		
		// 方法结果值 str 是否等于 "keryang"
		assertThat(str, equalTo("keryang")); 
		
		// 方法结果值 str 忽略大小写是否等于 "keryang"
		str = "keryang";
		assertThat( str, equalToIgnoringCase("keryang"));
		
		// 方法结果值 str 忽略两端的空白字符  <只能是两端的空白字符>  是否等于 "keryang"
		str = " keryang ";
		assertThat( str, equalToIgnoringWhiteSpace("keryang"));
		
		// 方法结果值 d 接近5.0, 误差允许范围0.3, 即  4.7 <= d <= 5.3
		double d = 5.3;
		assertThat(d, closeTo (5.0, 0.3));
		
		// 方法结果值 d 大于3.0
		assertThat(d, greaterThan(3.0));
		
		// 方法结果值小于 10.0
		assertThat(d, lessThan (10.0));
		
		// 方法结果值大于或者等于 5.0
		assertThat(d, greaterThanOrEqualTo (5.0));
		
		// 方法结果值小于或者等于 5.0
		assertThat(d, lessThanOrEqualTo (16.0));
		
		// 
		Map<String, String> map = new HashMap<String, String>();
		map.put("keryang", "keryang");
		map.put("ker", "yang");
		
		// 方法结果值 map 的 键集合 中是否包含键 "keryang"
		assertThat( map, hasKey ("keryang"));
		
		// 方法结果值 map 的 值集合 中是否包含值 "keryang"
		assertThat( map, hasValue ("keryang"));
		
		// 方法结果值 map 中是否包含键值对 {"keryang", "keryang"}
		assertThat( map, hasEntry("keryang", "keryang"));
		
		List<String> list = new ArrayList<String>();
		list.add("list");
		list.add("keryang");
		
		// 结果值 list 中是否包含 "keryang"
		assertThat( list, hasItem ( "keryang" ) );
		
	}

}


AssertJ 是 JAVA 的流畅断言库。示例代码:// unique entry point to get access to all assertThat methods and utility methods (e.g. entry) import static org.assertj.core.api.Assertions.*;  // common assertions assertThat(frodo.getName()).isEqualTo("Frodo"); assertThat(frodo).isNotEqualTo(sauron)                  .isIn(fellowshipOfTheRing);  // String specific assertions assertThat(frodo.getName()).startsWith("Fro")                            .endsWith("do")                            .isEqualToIgnoringCase("frodo");  // collection specific assertions assertThat(fellowshipOfTheRing).hasSize(9)                                .contains(frodo, sam)                                .doesNotContain(sauron);  // using extracting magical feature to check fellowshipOfTheRing characters name :) assertThat(fellowshipOfTheRing).extracting("name").contains("Boromir", "Gandalf", "Frodo", "Legolas")                                                   .doesNotContain("Sauron", "Elrond");  // map specific assertions, ringBearers initialized with the elves rings and the one ring bearers. assertThat(ringBearers).hasSize(4)                        .contains(entry(oneRing, frodo), entry(nenya, galadriel))                        .doesNotContainEntry(oneRing, aragorn);  // and many more assertions : dates, file, numbers, exceptions ... 标签:AssertJ
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值