sha*_*era 6 c++ unit-testing googletest googlemock grpc
有一个工具可以生成客户端存根的模拟版本,这非常有帮助。测试服务器端目前让我非常头痛。我已经够头痛了,我觉得我一定是做了一些根本性错误的事情。
我可能误读了以下内容,但端到端测试(包括“mock_test”)似乎正在使用实际的客户端-服务器连接来驱动测试。他们可能会模拟客户端,或者模拟客户端读取器/写入器以查看服务器的响应,但我不清楚如何单独测试服务器。
我想要做的事情:我有一些继承自 gRPC 生成的类“Service”的服务实现。假设服务公开了一个接口,::grpc::Status Foo(::grpc::ServerContext* context, const CommandMessage* request, ::grpc::ServerWriter<CommandResponse>* writer);我编写单元测试的直觉是传递一个模拟“ServerWriter”类,并期望在适当的时候调用“Write”。但 ServerWriter 被标记为最终的并且不能被覆盖。
这并不是我第一次在我的标准模拟方法和 gRPC 服务器内容方面遇到麻烦。我已经包装了 Server 类、ServerBuilder 类等,以便我可以将它们的模拟版本放入测试中(以验证在构建服务器时是否将正确的参数传递给我的服务器,例如)
所以我想我错过了 grpc 的一些东西。我只是不知道是什么。我是否应该在单元测试中建立一个真实的服务器并使用模拟客户端对其进行探测?如果我必须使用测试配置来支持测试版本,如何验证是否通过了正确的服务器配置?该代码具有接口类和虚拟方法,但是似乎公开供公众使用的部分似乎并不像我期望的那样容易被模拟。
| 归档时间: |
|
| 查看次数: |
852 次 |
| 最近记录: |