我想使用 Python unittest
为我的 GRPC 服务器实现编写测试。我找到了 grpcio-testing包,但我找不到任何如何使用它的文档。
假设我有以下 server :
import helloworld_pb2
import helloworld_pb2_grpc
class Greeter(helloworld_pb2_grpc.GreeterServicer):
def SayHello(self, request, context):
return helloworld_pb2.HelloReply(message='Hello, %s!' % request.name)
如何创建单元测试来调用 SayHello
并检查响应?
最佳答案
您可以在 setUp 时启动真实服务器,在 tearDown 时停止服务器。
import unittest
from concurrent import futures
class RPCGreeterServerTest(unittest.TestCase):
server_class = Greeter
port = 50051
def setUp(self):
self.server = grpc.server(futures.ThreadPoolExecutor(max_workers=10))
helloworld_pb2_grpc.add_GreeterServicer_to_server(self.server_class(), self.server)
self.server.add_insecure_port(f'[::]:{self.port}')
self.server.start()
def tearDown(self):
self.server.stop(None)
def test_server(self):
with grpc.insecure_channel(f'localhost:{self.port}') as channel:
stub = helloworld_pb2_grpc.GreeterStub(channel)
response = stub.SayHello(helloworld_pb2.HelloRequest(name='Jack'))
self.assertEqual(response.message, 'Hello, Jack!')
关于python - 如何用 Python 为 GRPC 服务器编写单元测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51792592/