Protobuf 介绍与实战47:protoc-gen-go-test插件介绍

已发表的技术专栏
0  grpc-go、protobuf、multus-cni 技术专栏 总入口

1  grpc-go 源码剖析与实战  文章目录

2  Protobuf介绍与实战 图文专栏  文章目录

3  multus-cni   文章目录(k8s多网络实现方案)

4  grpc、oauth2、openssl、双向认证、单向认证等专栏文章目录

1、protoc-gen-go-test插件源码下载

此插件是从https://github.com/gotomicro/ego框架里抽取了的prototobuf插件用例;

源码已经上传到百度网盘了。

链接: https://pan.baidu.com/s/1RNDYSmX38xFc_O7iDeGdcw 提取码: t3w6

在这里插入图片描述

2、该插件的目的、作用、要求

2.1、目的,作用?

该插件主要是为xxx_grpc.pb.go文件创建单元测试用例代码;

2.2、在使用protoc-gen-go-test插件时主要有两个要求:

  • 要求proto文件里必须声明了rpc服务;如果没有声明,也不会报错,创建的测试用例没有什么用而已。
  • 已经通过,如,protoc --go-grpc_out=. xxx.proto命令,为xxx.proto文件创建了rpc类型的接口xxx_grpc.pb.go文件了;
    • 因为protoc-gen-go-test插件需要xxx_grpc.pb.go文件作为参数。

3、如何通过protoc-gen-go-test插件为proto文件生成单元测试用例

3.1、test.proto测试样例

syntax = "proto3";

option go_package="pb/plugin/test";

message Student {
    string Name = 1;
    int32  age = 2;
}
message HelloReply {
  string message = 1;
}

service Greeter {
    rpc SayHello(Student) returns (HelloReply) {}
}

跟其他rpc类型的proto文件没有什么特别之处。

3.2、为test.proto创建rpc类型的接口文件

在这里插入图片描述

3.3、为test_grpc.pb.go文件创建单元测试用例

在这里插入图片描述

根据自己的实际情况,可能需要注意包名设置。

init_test.go, xxx_test.go文件就是xxx_grpc.pb.go文件的单元测试。

4、protoc-gen-go-test插件源码介绍

4.1、protoc-gen-go-test插件的入口

在这里插入图片描述

在这里插入图片描述

4.2、run方法介绍(负责生成init_test.go文件和test_test.go文件)

4.2.1、run方法介绍

在这里插入图片描述

4.2.2、generateInitFile方法介绍

在这里插入图片描述

4.2.3、generateFile方法介绍

在这里插入图片描述

在这里插入图片描述

代码并不是非难,就不解释了。

下一篇文章

  Protobuf 编码解决的是什么问题?以及Protobuf的编码结构介绍?

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

码二哥

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值