【发布时间】:2021-06-23 05:31:18
【问题描述】:
我想测试客户端,从而通过 gmock 模拟服务器。 我的原型定义为
// The greeting service definition.
service Greeter {
// Streaming request and reply
rpc StreamRequestAndReply (stream Request) returns (stream Reply) {}
}
message Request {
int32 idx = 1;
bool is_pause = 2; // control message
}
message Reply {
string msg = 1;
bool is_eof = 2;
}
而服务器端的对应函数是这样的
Status StreamRequestAndReply(ServerContext *context, ServerReaderWriter<Reply, Request> *stream) override {
// do something
}
我的问题是:如何通过 gmock 的模拟存根编写我预定义的回复消息,例如我想回复三个有效消息,然后在第四个中设置 is_eof?
我目前的想法是使用 testing::Invoke,但还没有弄清楚如何捕获流并调用 Write 函数。有人可以给我一些建议和提示吗?
【问题讨论】:
标签: c++ grpc googletest gmock