gRPC Python: 无法实例化抽象 class ServicerContext
gRPC Python: Can't instantiate abstract class ServicerContext
我正在尝试测试以下方法:
def my_method(self, request, context):
context.set_details('Already exists')
context.set_code(grpc.StatusCode.ALREADY_EXISTS)
为了测试它,我必须传入一个请求和一个上下文(它是一个 grpc.ServicerContext
对象),如下所示:
import grcp
def test_my_method(self):
request = {"something": "something-else"}
context = grpc.ServicerContext()
my_method(request, context)
# Assert something here
问题是,当我 运行 我的测试时出现以下错误:
TypeError: Can't instantiate abstract class ServicerContext with abstract methods add_callback, cancel, invocation_metadata, is_active, peer, send_initial_metadata, set_code, set_details, set_trailing_metadata, time_remaining
如何获得 grpc.ServicerContext
对象?如果我不能,我该如何测试该方法?
grpc.ServicerContext
是用 abc
module 定义的抽象 class。在您的测试中,您需要编写自己的具体子 class 并将其实例传递给您正在测试的方法。
我正在尝试测试以下方法:
def my_method(self, request, context):
context.set_details('Already exists')
context.set_code(grpc.StatusCode.ALREADY_EXISTS)
为了测试它,我必须传入一个请求和一个上下文(它是一个 grpc.ServicerContext
对象),如下所示:
import grcp
def test_my_method(self):
request = {"something": "something-else"}
context = grpc.ServicerContext()
my_method(request, context)
# Assert something here
问题是,当我 运行 我的测试时出现以下错误:
TypeError: Can't instantiate abstract class ServicerContext with abstract methods add_callback, cancel, invocation_metadata, is_active, peer, send_initial_metadata, set_code, set_details, set_trailing_metadata, time_remaining
如何获得 grpc.ServicerContext
对象?如果我不能,我该如何测试该方法?
grpc.ServicerContext
是用 abc
module 定义的抽象 class。在您的测试中,您需要编写自己的具体子 class 并将其实例传递给您正在测试的方法。