【发布时间】:2016-04-16 23:37:22
【问题描述】:
我正在尝试在异步的 Mocked 对象上设置一个方法。
由于对象对我的实际测试并不重要,我只希望该方法返回一个整数,这是它的返回类型。
我的代码如下:-
_legacyUnitOfWorkMock.Setup(x => x.CommitAsync()).Returns(Task.FromResult<int>(1));
但是,我收到以下错误消息:-
System.NotSupportedException : 非虚拟机上的无效设置 (在 VB 中可重写)成员:x => x.CommitAsync()
谁能指出为什么这段代码会失败?
【问题讨论】:
-
您能否发布更多关于 _legacyUnitOfWorkMock 是什么的信息,尤其是 CommitAsync 签名?
-
当方法不是virtual时,不能用Moq模拟。
标签: c# unit-testing nunit moq