просто простой вопрос здесь. Некоторое время я использовал Moq, но пока что использовал его только для окурков, а не для насмешек. Я пытаюсь познакомить наших разработчиков с модульным тестированием. Я создал простой пример, чтобы объяснить концепции, но я не могу заставить его работать. Наверное, что-то простое, поэтому я подумал, что просто попрошу всех вас посмотреть, что я делаю не так:
<Test()> _
Public Sub Divide_DivideByZero_LogsError()
Dim mock = New Mock(Of ILogger)
With mock
Dim calc = New MyCalculator(New CalculatorData, .Object)
calc.Divide(55, 0)
.Verify(Function(x) CType(x,ILogger).WriteError(it.IsAny(of String),It.IsAny(Of String))))
End With
End Sub
Я использую Moq версии 3.2.416.3. Я получаю сообщение об ошибке .verify, в котором говорится, что я звоню с неверными аргументами. Я просто пытаюсь проверить, что .WriteError был вызван. любая помощь будет оценена.
Edit:
Хорошо, все, если я изменю ".WriteError" с подпрограммы (возврат void) на функцию, которая возвращает логическое значение, это работает. WriteError не обязательно должен быть функцией. Кто-нибудь знает, почему саб не работает?