Заблокированная функция не возвращает ожидаемое значение - PullRequest
2 голосов
/ 02 декабря 2011

У меня есть статический метод

Public Shared Function UpdateGroup(ByVal details As GroupDetails)
    As ControllerResult
    Return _methodObject.UpdateGroup(details)
End Function

, который был подвергнут рефакторингу для возможности имитации с помощью

Private Shared _methodObject As ISecurityController = 
     New SecurityControllerMethodObject()

Public Shared Sub OverrideInstance(ByVal controller As ISecurityController)
    _methodObject = controller
End Sub

Затем в моем тесте у меня есть

var moqSecurityController = new Mock<ISecurityController>();
    moqSecurityController
        .Setup(x => x.UpdateGroup(groupDetails))
        .Returns(controllerResult);

SecurityController.OverrideInstance(moqSecurityController.Object);

Если я поставлю точку останова в этой последней строке, я увижу, что groupDetails имеет то, что должен, а также controllerResult, поэтому я ожидаю, что при вызове функции UpdateGroup будет возвращен controllerResult, который представляет собой простой класс сСвойства сообщения и успеха.

Однако я получаю значение Null / Nothing.

Чего мне не хватает?

Примечание. Как вы могли заметить, рабочий кодв VB.NET мои тесты находятся на C #.

1 Ответ

5 голосов
/ 02 декабря 2011

Это потому, что ваши groupDetails не совпадают?

try

var moqSecurityController = new Mock<ISecurityController>();
moqSecurityController.Setup(
  x => x.UpdateGroup(It.IsAny<GroupDetails>())
).Returns(controllerResult); 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...