【发布时间】:2019-02-11 19:03:05
【问题描述】:
我正在尝试为以下通用接口设置最小起订量,但出现异常
public interface IReadAccess<TEntity>
{
Task<IEnumerable<TEntity>> GetAll();
}
var m = new Mock<IReadAccess<Foo>>(MockBehavior.Strict);
m.Setup(p => p.GetAll()).ReturnsAsync(new List<Foo>());
m.VerifyAll();
得到以下异常
Moq.MockException
HResult=0x80131500
Message=The following setups on mock
'Mock<EPIC.CrossCutting.Interfaces.DAL.Framework.IReadAccess<EPIC.CrossCutting.DTOs.Data.Announcement.AnnouncementCrosscutDTO>:00000002>'
were not matched:
IReadAccess<AnnouncementCrosscutDTO> p => p.GetAll()
Source=Moq
StackTrace:
at Moq.Mock.VerifyAll()
at EPIC.Tests.Business.Rules.Announcements.AnnouncementPlanning.CrosscutsProgrammaticActivitiesValidationRuleServiceTests.<ExecuteSuccessTest>d__5.MoveNext()
in D:\dev\main\Tests\EPIC.Tests.Business.Rules\Announcements\AnnouncementPlanning\CrosscutsProgrammaticActivitiesValidationRuleServiceTests.cs:line 108
【问题讨论】:
-
你能修复你的代码 sn-p 以便我们可以看到你的模拟是如何设置的吗?
-
在
Setup和VerifyAll之间是否有一些代码实际上调用了GetAll方法? -
请阅读minimal reproducible example 指导和edit 帖子以显示匹配并重现您的错误消息的代码。目前的代码显然是一些不会导致错误显示的简化。
标签: c# unit-testing moq