完成
最后更新: 2022年5月12日07:51 通过管理
Mihail
上创建: 2021年9月23日14:24
类型: 错误报告
4
系统。当单元测试启用了代码覆盖的microsoft . extensions . cache . distributedcache的实现时抛出InvalidProgramException
一个系统。当在具有代码覆盖率的Visual Studio内执行异步单元测试时抛出InvalidProgramException。单元测试是测试Microsoft.Extensions.Caching.Distributed.IDistributedCache的实现。
2的评论
管理
Mihail
发布: 2022年5月12日07:51

该问题已修复,可在R2 2022版本2022.2.511.1中使用

问候,
Mihail
进步Telerik

喜欢Telerik和Kendo的UI产品,相信更多人应该尝试一下?邀请其他开发者成为Progress的客户每个人都可以得到50美元的亚马逊礼券

管理
发布: 2021年11月12日09:51

***对原始内容的更新***

该问题在更一般的情况下也会重现,并且在版本16.10.0及更高版本中发生。下面是示例代码:

公共Class1公共异步任务<int>EchoAsyncintv返回等待Task.FromResult (v);}}…[TestMethod]公共异步任务TestMethodWithIssuevarsut = Mock.Create();Mock.Arrange(() => sut.EchoAsync(Arg.AnyInt)) . return (异步intV) => {等待的任务。延迟(300);返回等待的任务。FromResult (v *2);});var结果=等待sut。EchoAsync (10);Mock.Assert (sut);断言。AreEqual (20.,结果);}

到目前为止,唯一可行的解决方法是禁用自动模拟。重置由分析器在检测期间执行:

TestMethod] [DisableAutomaticRepositoryReset(allowmock = true)]公共异步任务TestMethodWithIssueWorkarund试一试varsut = Mock.Create();Mock.Arrange(() => sut.EchoAsync(Arg.AnyInt)) . return (异步intV) => {等待的任务。延迟(300);返回等待的任务。FromResult (v *2);});var结果=等待sut。EchoAsync (10);Mock.Assert (sut);断言。AreEqual (20.,结果);}最后{Mock.Reset ();}}

问候,

进步Telerik

manbets登录虚拟教室,免费的自定进度的技术培训,让你跟上速度与Telerik和剑道UI产品迅速得到了一个全新的面貌+新的和改进的内容,包括一个全新的Blazor课程!点击这里查看https://learn.telerik.com/

Baidu
map