在我的项目中,编写了一个通用的服务解析器类方法.其中公共方法返回<;IServiceA、IServiceB、IServiceC&>之一.我无法嘲笑这种班级行为.
private readonly IServiceA _serviceA;
private readonly IServiceB _serviceB;
private readonly IServiceC _serviceC;
public ProjectResolver(
IServiceA serviceA,
IServiceB serviceB,
IServiceC serviceC
)
{
_serviceA = serviceA;
_serviceB = serviceB;
_serviceC = serviceC;
}
...
public OneOf<IServiceA, IServiceB, IServiceC> GetServiceHandler(string Id)
{
if (!_projectSettings.Projects.ContainsKey(Id))
return new NotFound();
return _projectSettings.Projects[Id] switch
{
"a" => (ServiceA)_serviceA,
"b" => (ServiceB)_serviceB,
"c" => (ServiceC)_serviceC,
_ => throw new ArgumentOutOfRangeException(Id)
};
}
我模拟了所有服务(IServiceA、IServiceB和IServiceC)和项目解析器类.在运行测试时,我出现异常情况.
Exception while calling Path
System.InvalidCastException: Unable to cast object of type 'Castle.Proxies.IserviceA' to type 'ServiceA'.
我需要帮助来嘲笑这个项目解析器类.提前感谢👍