因为我更新到最新版本的Moq(4.2)我有一些单元测试失败。 我收到System.InvalidCastException:无法将类型为'FilterCriteria'的对象强制转换为'SortCriteria'。 由于我的代码使用Task来获取这些值,我怀疑Moq的新版本与前一版本的工作方式不同。
这是有问题的代码:
在测试类中:
Task<FilterCriteria> getFilterCriteriaTask = Task<FilterCriteria>.Factory.StartNew(() => searchService.GetFilterCriteriaFromCache(id));
Task<SortCriteria> getSortCriteriaTask = Task<SortCriteria>.Factory.StartNew(() => searchService.GetSortCriteriaFromCache(id));
FilterCriteria filterCriteria = getFilterCriteriaTask.Result;
SortCriteria sortCriteria = getSortCriteriaTask.Result;
在单元测试中:
searchServiceMock
.Setup(it => it.GetFilterCriteriaFromCache(expectedCacheKey, null))
.Returns(expectedFilterCriteria);
searchServiceMock
.Setup(it => it.GetSortCriteriaFromCache(expectedCacheKey))
.Returns(expectedSortCriteria);
有什么想法可以归结为什么? 我真的不知道从哪里开始。
由于