Перегруженное свойство Moq в VB.Net - PullRequest
1 голос
/ 11 января 2020

У меня есть что-то вроде унаследованного класса:

Public Class MyOverloadExample
    Public Overridable ReadOnly Property SomeDescription() As String
            Get
                Return "No Parameter"
            End Get
        End Property
    Public ReadOnly Property SomeDescription(ByVal p1 As Integer) As String
            Get
                Return "Used Parameter"
            End Get
        End Property
End Class

Я хочу SetupGet в первом SomeDescription Свойство без параметров. Я попытался это:

Dim mock = New Mock(Of MyOverloadExample)
mock.SetupGet(Function(i) i.SomeDescription()).Returns("Mocked the No Parameter Property")

Но это не удается с этим исключением:

threw exception: 
System.Reflection.AmbiguousMatchException: Ambiguous match found.
    at System.RuntimeType.GetPropertyImpl(String name, BindingFlags bindingAttr, Binder binder, Type returnType, Type[] types, ParameterModifier[] modifiers)
   at System.Type.GetProperty(String name, BindingFlags bindingAttr)
   at Moq.ExpressionExtensions.ToPropertyInfo(LambdaExpression expression) in C:\projects\moq4\src\Moq\ExpressionExtensions.cs:line 47
   at Moq.Mock.SetupGetPexProtected[T,TProperty](Mock`1 mock, Expression`1 expression, Condition condition) in C:\projects\moq4\src\Moq\Mock.cs:line 511
   at Moq.PexProtector.Invoke[T1,T2,T3,TResult](Func`4 function, T1 arg1, T2 arg2, T3 arg3) in C:\projects\moq4\src\Moq\PexProtector.cs:line 38
   at Moq.Mock.SetupGet[T,TProperty](Mock`1 mock, Expression`1 expression, Condition condition) in C:\projects\moq4\src\Moq\Mock.cs:line 496
   at Moq.Mock`1.SetupGet[TProperty](Expression`1 expression) in C:\projects\moq4\src\Moq\Mock.Generic.cs:line 332

Я пытался без пустого (), но получить то же исключение:

mock.SetupGet(Function(i) i.SomeDescription).Returns("Mocked the No Parameter Property")

Есть ли какие-нибудь лямбда / мок маги c Я скучаю или это просто невозможно с Moq?

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