【问题标题】:Moq - Setup of Async Method. ErrorMoq - 异步方法的设置。错误
【发布时间】: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


【解决方案1】:

你试过了吗:

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

或者

_legacyUnitOfWorkMock.Setup(x => x.CommitAsync()).Returns(Task.FromResult(1));

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-04-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-13
    • 1970-01-01
    • 2016-08-04
    • 1970-01-01
    相关资源
    最近更新 更多