2016-03-25 3 views
0

MOq:Moq - Передразнивало метод ответа не ожидается возвращения установки значения

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(), , а не мою издеваемую версию. Есть ли способ сделать эту работу?

+1

Пожалуйста, добавьте код с вызовом метода GetNodesInCriticalCondition(). –

ответ

0

Вы должны создать новый экземпляр BranchCircuitStatusScheduleEntry, а затем вызвать GetNodesInCriticalCondition, и внутри этого метода вы получите издевательский результат GetNodesOn3GBackupAsync.

var branchCircuitStatusScheduleEntry = new BranchCircuitStatusScheduleEntry(); 
var result = branchCircuitStatusScheduleEntry.GetNodesInCriticalCondition(); 
Смежные вопросы