已发表的技术专栏
0 grpc-go、protobuf、multus-cni 技术专栏 总入口
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方法介绍 |


代码并不是非难,就不解释了。
下一篇文章
版权声明:本文为u011582922原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。