我一直按照这里的指南-- https:/docs.servicestack.nettesting。
我试图做单元测试而不是集成,只是为了减少嘲笑和其他复杂的程度。
我的一些服务通过推荐的IServiceGateway API调用我的一些其他服务,例如Gateway.Send(MyRequest)。
然而,当运行测试时,我得到了System.NotImplementedException:"无法解析服务'GetMyContentRequest'"。
我已经使用了容器.RegisterAutoWired(),它是处理这个请求的服务。
我不知道下一步该怎么走。我真的不想再重新开始设置一个集成测试模式。
如果你试图将服务集成作为单元测试来执行,而不是将集成测试作为单元测试来执行,你很可能会不断地遇到问题,因为集成测试会在验证有效的状态下开始。
但是对于网关请求来说,它们的执行方式是使用了一个 IServiceGateway
您可以选择通过 实现GetServiceGateway() 在您的自定义 AppHost
或通过注册一个自定义实现的 IServiceGatewayFactory
或 IServiceGateway
在你的IOC中,这里是默认的实现。
public virtual IServiceGateway GetServiceGateway(IRequest req)
{
if (req == null)
throw new ArgumentNullException(nameof(req));
var factory = Container.TryResolve<IServiceGatewayFactory>();
return factory != null ? factory.GetServiceGateway(req)
: Container.TryResolve<IServiceGateway>()
?? new InProcessServiceGateway(req);
}