Пересмешивание методов VB.NET с помощью Moq

Я пытаюсь выполнить модульное тестирование действия контроллера, использующего поставщика членства для обновления сведений о пользователе. Я использую Moq, который до сих пор был прост в использовании.

Проблема в том, что я не могу заставить его посмеяться над вызовами методов, которые ничего не возвращают.

<TestMethod()> _
Public Sub Can_Update_User()
  ' Arrange
  _membershipService.Setup(Function(x) x.UpdateUser(It.IsAny(Of MembershipUser)))
  Dim controller As New UsersController(_membershipService.Object, _roleProvider.Object, _supportWorksService.Object, _portalClientService.Object)
  ' Act
  Dim result As ViewResult = controller.Edit("testUser", New FormCollection)
  ' Assert
  Assert.AreEqual("Index", result.ViewName)
End Sub

Настройка службы с поддельным членством не скомпилируется, ошибка:

Overload resolution failed because no accessible 'Setup' can be called with these arguments:

'Public Function Setup(Of TResult)(expression As System.Linq.Expressions.Expression(Of System.Func(Of Services.IMembershipService, TResult))) As Moq.Language.Flow.ISetup(Of Services.IMembershipService, TResult)': Expression does not produce a value.

'Public Function Setup(Of TResult)(expression As System.Linq.Expressions.Expression(Of System.Func(Of Services.IMembershipService, TResult))) As Moq.Language.Flow.ISetup(Of Services.IMembershipService, TResult)': Data type(s) of the type parameter(s) cannot be inferred from these arguments. Specifying the data type(s) explicitly might correct this error.

'Public Function Setup(expression As System.Linq.Expressions.Expression(Of System.Action(Of Services.IMembershipService))) As Moq.Language.Flow.ISetup(Of Services.IMembershipService)': Expression does not produce a value.

Что я пропустил? Я собираюсь создать поддельный класс, а не использовать Moq всякий раз, когда в моем классе есть метод, который я хочу вызвать?

Редактировать:

Хорошо, небольшое прочтение подсказывает, что это связано с тем, как лямбда-выражения выражаются в VB с использованием функции (), которая должна иметь результат.

Кто-нибудь нашел решение этой проблемы или мне придется отказаться от Moq для подделки?

Ответы на вопрос(4)

Ваш ответ на вопрос