【问题标题】:Moq - Mocked Method Response is not returning expected valueMoq - 模拟方法响应未返回预期值
【发布时间】:2016-03-25 22:00:59
【问题描述】:

起订量设置:

Branch3GInfo mockCasResponse = new Branch3GInfo
{
    Branch3GActiveRouters = new CasApiRouterModelExtendedInfo[]
    {
        new CasApiRouterModelExtendedInfo(12345, "MyRouter", 4, 1, "MyModelType")
    }
};

var mock = new Mock<BranchCircuitStatusScheduleEntry>(_application);
mock.CallBase = true;

mock.Setup(x => x.GetNodesOn3GBackupAsync()).ReturnsAsync(mockCasResponse);
var mockedObject = mock.Object.GetNodesOn3GBackupAsync().Result;

mockedObject 包含我创建的模拟响应。

BranchCircuitStatusScheduleEntry 有一个名为 GetNodesInCriticalCondition() 的方法。

GetNodesInCriticalCondition() 在其主体中调用 GetNodesOn3GBackupAsync(),然后基于此生成一些输出。但是,它发出了这个调用,它调用了 REAL GetNodesOn3GBackupAsync()而不是我的模拟版本。有没有办法让它工作?

【问题讨论】:

  • 请添加调用GetNodesInCriticalCondition()方法的代码。

标签: c# unit-testing moq


【解决方案1】:

您应该创建 BranchCircuitStatusScheduleEntry 的新实例,然后调用 GetNodesInCriticalCondition,在该方法中您将获得 GetNodesOn3GBackupAsync 的模拟结果。

var branchCircuitStatusScheduleEntry  = new BranchCircuitStatusScheduleEntry();
var result = branchCircuitStatusScheduleEntry.GetNodesInCriticalCondition(); 

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多