前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >JsonUnit的正则匹配测试

JsonUnit的正则匹配测试

作者头像
Antony
发布2020-12-03 14:54:58
5210
发布2020-12-03 14:54:58
举报

之前写过一篇文章简单介绍了jsonunit 这个非常棒的json断言工具。

测试断言之接口测试断言利器jsonunit

在最近的测试项目中,发现有个接口返回值的errorMsg中包含了时间信息,需要用到正则匹配的断言。

由于官网关于正则匹配的案例只有一个,尝试多写了几个备用

代码语言:javascript
复制
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}甲乙.*丙\"}");
    }
}

顺便记录一下使用的版本

代码语言:javascript
复制
    <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目前还不支持。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-09-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 软件测试那些事 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档