C# Moq-异步方法的设置。错误

C# Moq-异步方法的设置。错误,c#,unit-testing,nunit,moq,C#,Unit Testing,Nunit,Moq,我试图在模拟对象上设置一个异步的方法 由于对象对我的实际测试并不重要,我只希望该方法返回一个整数,这是它的返回类型 我的密码如下:- _legacyUnitOfWorkMock.Setup(x => x.CommitAsync()).Returns(Task.FromResult<int>(1)); \u legacyUnitOfWorkMock.Setup(x=>x.CommitAsync())。返回(Task.FromResult(1)); 但是,我收到以下错误消息:-

我试图在模拟对象上设置一个异步的方法

由于对象对我的实际测试并不重要,我只希望该方法返回一个整数,这是它的返回类型

我的密码如下:-

_legacyUnitOfWorkMock.Setup(x => x.CommitAsync()).Returns(Task.FromResult<int>(1));
\u legacyUnitOfWorkMock.Setup(x=>x.CommitAsync())。返回(Task.FromResult(1));
但是,我收到以下错误消息:-

System.NotSupportedException:非虚拟服务器上的设置无效 (在VB中可重写)成员:x=>x.CommitAsync()

有人能指出此代码失败的原因吗?

您是否尝试过:

_legacyUnitOfWorkMock.Setup(x => x.CommitAsync()).ReturnsAsync(1);


你能发布更多关于什么是_legacyUnitOfWorkMock的信息吗,特别是CommitAsync签名?如果方法不是,那么就不能用Moq来模拟它。
_legacyUnitOfWorkMock.Setup(x => x.CommitAsync()).Returns(Task.FromResult(1));