之前写过一篇文章简单介绍了jsonunit 这个非常棒的json断言工具。
在最近的测试项目中,发现有个接口返回值的errorMsg中包含了时间信息,需要用到正则匹配的断言。
由于官网关于正则匹配的案例只有一个,尝试多写了几个备用
关
package com.github.jsonunit; import org.junit.jupiter.api.Test; import static net.javacrumbs.jsonunit.assertj.JsonAssertions.assertThatJson; public class JsonUnitTest { @Test public void TestJsonUnitPattern(){ assertThatJson("{\"test\": \"ABCD\"}") .isEqualTo("{\"test\": \"${json-unit.regex}^A[A-Z]+\"}"); } @Test public void TestJsonUnitPatternPrefixChn(){ assertThatJson("{\"test\": \"甲ABC\"}") .isEqualTo("{\"test\": \"${json-unit.regex}^甲[A-Z]+\"}"); } @Test public void TestJsonUnitPatternSuffix(){ assertThatJson("{\"test\": \"甲乙丙丁\"}") .isEqualTo("{\"test\": \"${json-unit.regex}^甲.*丁$\"}"); } @Test public void TestJsonUnitPatternWildcast(){ assertThatJson("{\"test\": \"甲乙丙丁\"}") .isEqualTo("{\"test\": \"${json-unit.regex}^甲.*\"}"); } @Test public void TestJsonUnitPatternWildcastInMiddle(){ assertThatJson("{\"test\": \"甲乙21:42:36丙丁\"}") .isEqualTo("{\"test\": \"${json-unit.regex}甲乙.*丙\"}"); } }
顺便记录一下使用的版本
<dependency> <groupId>net.javacrumbs.json-unit</groupId> <artifactId>json-unit-assertj</artifactId> <version>2.17.0</version> <scope>test</scope> </dependency>
这个包附带了assertJ,并且需要有一个类似gson,gackson等gson解析包。很遗憾fastjson目前还不支持。
本文分享自微信公众号 - 软件测试那些事(antony-not-available),作者:风月同天测试人
原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。
原始发表时间:2020-09-15
本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。
我来说两句