5、Go自动化测试入门-go-jsonschema断言

在实际的接口断言中,碰到一些返回结果是json结构,但是每一次返回的value值都不一样,所以考虑使用jsonschema进行断言。
具体jsonschema的规则可以参考https://www.cnblogs.com/terencezhou/p/10474617.html,一般我们可以通过jsonschema的转换工具https://easy-json-schema.github.io/进行简易的转换,然后在上面基础上进行结构的调整
在golang中,我们使用的是gojsonschema,导包:go get github.com/xeipuuv/gojsonschema

func JsonschemaAssert(schemaFile string ,postResult string) bool{
   
   b1, err := ioutil.ReadFile
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在Go语言中,可以使用gomock和gostub工具来进行自动化的接口测试。通过使用这些工具,可以模拟接口的行为,并且对接口进行打桩。gomock工具提供了一种简单的方式来创建和使用模拟对象,从而可以在测试中模拟接口的调用和返回值。而gostub工具则可以用来在测试中替换接口的方法体,以便测试特定的场景。 使用gomock和gostub进行接口测试的一般步骤如下: 1. 在测试文件中导入gomock或gostub的相关包。 2. 使用gomock生成接口的模拟对象,并设置模拟对象的预期调用及返回值。 3. 使用gostub对接口的方法进行打桩,以模拟不同的场景。 4. 编写测试用例,调用被测试的函数,并断言返回值是否符合预期。 下面是一个示例代码,演示了如何使用gomock和gostub进行接口测试: ```go package main import ( "testing" "github.com/golang/mock/gomock" ) // 定义一个接口 type DB interface { Get(key string) (string, error) } // 被测试的函数 func GetFromDB(db DB, key string) (string, error) { return db.Get(key) } func TestGetFromDB(t *testing.T) { ctrl := gomock.NewController(t) defer ctrl.Finish() // 创建一个模拟对象 mockDB := NewMockDB(ctrl) // 设置模拟对象的预期调用及返回值 mockDB.EXPECT().Get("key1").Return("value1", nil) // 打桩,模拟不同的场景 gostub.StubFunc(&mockDB.Get, func(key string) (string, error) { if key == "key2" { return "value2", nil } return "", fmt.Errorf("key not found") }) // 调用被测试的函数 value1, err1 := GetFromDB(mockDB, "key1") value2, err2 := GetFromDB(mockDB, "key2") // 断言返回值是否符合预期 if value1 != "value1" || err1 != nil { t.Errorf("Test case 1 failed") } if value2 != "value2" || err2 != nil { t.Errorf("Test case 2 failed") } } ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值