MOQ: не могу привести Moq.Mock к интерфейсу в VB.Net - PullRequest
2 голосов
/ 03 ноября 2010

Я пишу простой модульный тест, чтобы проверить, возвращается ли верное имя представления ActionResult в VB.Net MVC 1. Контроллеру требуется служба, и я пытаюсь смоделировать службу, но продолжаю получать эту ошибку.

Unable to cast object of type 'Moq.Mock`1[SRE.Web.Mvc.INotificationService]' to type 'SRE.Web.Mvc.INotificationService'.

Как я уже сказал, все просто, и я не уверен, куда идти.

Вот тест.

<Test()> _
    Public Sub Index_Properly_Validates_Email_Address()
        'Arrange
        Dim fakeNotifcationService As New Mock(Of INotificationService)(MockBehavior.Strict)
        Dim controller As New CustomerServiceController(fakeNotifcationService)
        Dim result As ViewResult


        'Act
        result = controller.Feedback("fake@fake.com", "fakesubject", "fakemessage")
        'Assert
        Assert.AreEqual("thankyou", result.ViewName)

    End Sub

Ответы [ 2 ]

5 голосов
/ 03 ноября 2010

Тип Mock(Of INotificationService) не может быть преобразован в INotificationServec, поэтому вы получаете эту ошибку.Чтобы добраться до объекта mock'd, вам нужно использовать свойство Object.

Dim controller As New CustomerServiceController(fakeNotifcationService.Object)
2 голосов
/ 03 ноября 2010

Я думаю, вам нужно fakeNotifcationService.Object.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...