C# 如何模拟ODataClient';MSFakes的扩展方法?
我已经从Dynamics 365元数据生成了一个OData客户端。我正在为业务逻辑编写单元测试,我想用自定义数据模拟RESTAPI 之前我问过如何为ODataClient设置假返回数据,我找到了答案: 在我不得不使用Expand关键字(使用)查询嵌套数据之前,一切都很顺利 例如,当与伪造的ODataClient程序集一起使用时,此查询因NullReferenceException而失败:C# 如何模拟ODataClient';MSFakes的扩展方法?,c#,.net,dynamics-crm,microsoft-fakes,microsoft-odata,C#,.net,Dynamics Crm,Microsoft Fakes,Microsoft Odata,我已经从Dynamics 365元数据生成了一个OData客户端。我正在为业务逻辑编写单元测试,我想用自定义数据模拟RESTAPI 之前我问过如何为ODataClient设置假返回数据,我找到了答案: 在我不得不使用Expand关键字(使用)查询嵌套数据之前,一切都很顺利 例如,当与伪造的ODataClient程序集一起使用时,此查询因NullReferenceException而失败: IQueryable<Insurance> insurancesQuery = from i i
IQueryable<Insurance> insurancesQuery = from i in _client.Insurances
.Expand(i => i.Account_id)
select i;
我知道问题是我没有在某处设置垫片或短棒,但我就是找不到正确的方法来替换。我试图阅读OData源代码,但还没有发现任何有用的东西
我试图设置帐户的Getter方法(ShimSystem.AccountsGet
),但它没有做任何事情
有没有办法进一步解决这个问题?事实证明,我还必须在OData客户端的
系统类上设置ExpandString
shim方法,以返回与提供者本身相同的数据
IQueryable<Insurance> insurancesQuery = from i in _client.Insurances
.Expand("account_id")
select i;
> at lambda_method(Closure , Ecr_insurance ) at
> System.Linq.Enumerable.WhereEnumerableIterator`1.MoveNext() at
> System.Collections.Generic.List`1..ctor(IEnumerable`1 collection)
> at System.Linq.Enumerable.ToList[TSource](IEnumerable`1 source)