RhinoMocks WhenCalled не возвращает то, что я ожидаю
У меня есть следующий код в модульном тесте:
Dim repository As IRepository(Of tkey, T) =
MockRepository.GenerateMock(Of IRepository(Of tkey, T))()
repository.
Expect(Function(r) r.FindById(Arg(Of tkey).Is.Anything)).
Return(Nothing).
WhenCalled(Function(invocation) invocation.ReturnValue = DirectCast(invocation.Arguments.First(), tkey))
Когда я использую смоделированный репозиторий таким образом:
Dim result As String = myRepo.FindById("Two")
Я ожидаю, что результат будет содержать "Два". Тем не менее, он всегда содержит ничего / ноль.
Есть идеи?
Вот неуниверсальная версия той же проблемы:
Public Interface IDoSomething
Function DoSomething(index As Integer) As Integer
End Interface
<Test()>
Public Sub ShouldDoSomething()
Dim myMock As IDoSomething = MockRepository.GenerateMock(Of IDoSomething)()
myMock.
Stub(Function(d) d.DoSomething(Arg(Of Integer).Is.Anything)).
WhenCalled(Function(invocation) invocation.ReturnValue = 99).
Return(Integer.MinValue)
Dim result As Integer = myMock.DoSomething(808)
End Sub
Результат теперь содержит Integer.MinValue, а не ожидаемый 99.