Moq 4.2和Tasks触发异常

时间:2013-12-20 09:30:59

标签: c# unit-testing moq

因为我更新到最新版本的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);

有什么想法可以归结为什么? 我真的不知道从哪里开始。

由于

0 个答案:

没有答案