目前我们能够按照以下方式测试阳性病例:
class AuthServer(auth_grpc.AuthServicer):
def __init__(self, *args, **kwargs):
print("Initializing auth server..")
super(AuthServer, self).__init__(*args, **kwargs)
def register(self, request, context):
return auth_messages.registerResponse(uuid="Test")
pytest
灯具看起来如下:
@pytest.fixture(scope="session")
def server():
return AuthServer()
@pytest.fixture(scope="session")
def context():
return DummyGRPCTestContext()
在以下方式访问的测试用例环境中:
def test_user_registration(server, context, user):
request = auth_messages.registerRequest(**user)
result = server.register(request, context)
print("RESULT %s " % result)
但是,如果我们想要测试否定案例并将grpc servicer方法更改为以下内容:
def register(self, request, context):
context.set_code(grpc.StatusCode.ALREADY_EXISTS)
context.set_details("User already exists")
return auth_messages.registerResponse()
我们失败了与虚拟上下文相关的错误。
在哪里可以获得grpc上下文,可以轻松插入测试环境?
像this这样的上下文看起来很复杂,还没有为插件和测试做好准备。
答案 0 :(得分:1)
grpc.ServicerContext
is just an interface;在您的测试代码中,您应该能够编写自己的实现,并将其传递给您正在测试的服务商。
确实,目前我们没有在Before: _!__
After:
grpc_testing
实施中提供准备好被测试使用并传递给被测系统的实现,但它已经#39}我们还不完全清楚,我们可以提供一个简单实施的,也对大量测试有价值的。测试中的服务人员如何使用grpc.ServicerContext
个对象,以及作者如何编写服务人员测试的另一个大行为空间。