av一区二区在线观看_亚洲男人的天堂网站_日韩亚洲视频_在线成人免费_欧美日韩精品免费观看视频_久草视

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

簡(jiǎn)單了解Java斷言利器AssertJ原理及用法

瀏覽:45日期:2022-08-21 13:55:00

AssertJ是我目前見過的最強(qiáng)大的斷言api,沒有之一。

官網(wǎng)傳送門

為什么使用assertJ?

1、流式斷言,代碼即用例,直觀易懂。

舉個(gè)例子:

傳統(tǒng)的junit或者testng,判斷一個(gè)字符串包不包括a跟b兩個(gè)字符。要這么寫

assertTrue(stringbuffer.contains('a') && stringbuffer.contains('b'))

而如果你用的assertJ

assertThat(stringbuffer).contains('a').contains('b').as('判斷字符串是否包括a|b')

相比之下,顯然后者更加容易理解。而且as的注釋更是讓斷言清晰

2、方便定制的斷言器

試想一下。當(dāng)你在做接口測(cè)試的時(shí)候,還在到處寫著

JSONPath.eval(JSONObject.parse(String),'$yourpath').tostring.equals(expectString)

你的接口自動(dòng)化里邊。到處都是這些看都不想看的json解析,判斷。然而,當(dāng)你有了assertJ,你可以自定義你的斷言,盡可能的簡(jiǎn)化你的測(cè)試代碼,可讀性將能幾何倍數(shù)提升。下邊是我自己寫的一個(gè)針對(duì)json的自定義斷言器:

import java.math.BigDecimal;import org.assertj.core.api.AbstractAssert;import org.assertj.core.api.AbstractBigDecimalAssert;import org.assertj.core.api.AbstractBooleanAssert;import org.assertj.core.api.AbstractCharSequenceAssert;import org.assertj.core.api.AbstractIntegerAssert;import org.assertj.core.api.Assertions;import com.alibaba.fastjson.JSONObject;import com.alibaba.fastjson.JSONPath;/** * assertJ json數(shù)據(jù)判斷增強(qiáng) eg:不提供提取數(shù)組的方法,在斷言中作用比較小 * * @author jacksoncina2008 * */public class AssertJSON extends AbstractAssert<AssertJSON, String> { protected AssertJSON(String actual) { super(actual, AssertJSON.class); // TODO Auto-generated constructor stub } public static AssertJSON assertThat(String json) { return new AssertJSON(json); } /** * 提取字符串節(jié)點(diǎn) */ public AbstractCharSequenceAssert<?, String> jsonPathAsString(String path) { return Assertions.assertThat((String) JSONPath.eval(getJSON(actual), path)); } /** * 提取boolean節(jié)點(diǎn) */ public AbstractBooleanAssert<?> jsonPathAsBoolean(String path) { return Assertions.assertThat((boolean) JSONPath.eval(getJSON(actual), path)); } /** * 提取數(shù)字節(jié)點(diǎn) * */ public AbstractIntegerAssert<?> jsonPathAsInteger(String path) { return Assertions.assertThat((Integer) JSONPath.eval(getJSON(actual), path)); } /** * 提取小數(shù) * */ public AbstractBigDecimalAssert<?> jsonPathAsBigDecimal(String path) { return Assertions.assertThat((BigDecimal) JSONPath.eval(getJSON(actual), path)); } private JSONObject getJSON(String json) { JSONObject j = new JSONObject(); j = JSONObject.parseObject(json); return j; }}

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。

標(biāo)簽: Java
相關(guān)文章:
主站蜘蛛池模板: av高清在线 | 国产99精品 | 国产黄色在线观看 | 91福利在线观看 | 亚洲精品一二三 | 亚洲视频免费观看 | 精品国产乱码久久久久久影片 | 躁躁躁日日躁 | 91女人18毛片水多国产 | 91欧美日韩 | 亚洲精品999 | 日韩在线视频观看 | 国产不卡视频 | 欧美日韩国产在线播放 | 日韩精品福利 | 国产福利在线播放 | 免费在线观看黄色片 | 亚洲乱码在线 | 国产性猛交| 日日干日日干 | 一级片在线免费观看 | 91狠狠| 亚洲视频网址 | 欧美一级特黄aaaaaa | 免费日韩视频 | 日本少妇高潮达到高潮 | 亚洲欧美国产毛片在线 | 伊人色播 | 97超碰免费| 欧美日韩国产激情 | 国产激情在线视频 | 黄色大片免费在线观看 | 成人在线免费观看网站 | 黄色福利视频 | 成人在线视频免费观看 | 欧美日韩亚洲另类 | 久久久久久久久久国产 | 国产福利视频在线 | 天天干天天爽 | 国产最新av| 成人羞羞网站 |