2009-05-12 6 views
2

단위 테스트를 C#에서 한 것과 비슷하지만 VB에서 람다와 어려움을 겪고 있습니다.VB.NET 2008의 단위 테스트에서 Lambda를 Rhino.Mocks와 함께 사용

나는 현명하게도 클래스를 모의하고 스텁을 만들어 반환하려고합니다. C#에서 나는 비슷한 것을했을 것입니다;

MockedPersonRepository 
    .Stub(x => x.Find(id)) 
    .Return(person) 

그러나

Visual Basic에서 나는 비슷한 일을하려고하지만 구문

MockedPersonRepository.Stub(Function... argh!!! 

위 주시면 감사하겠습니다 재생하는 방법에 대한 조언을 해결할 수 없다!

종류의 안부 돔

답변

3

(나는 또한 VB 개발자 해요로) 나는 일반적으로 보여 쉬운 하나의 예를 아래입니다 : (다른 기능이 점을 뽑아 필요 VB에서 어떤 이상한 이유로 그 반환 아무것도)

<TestMethod()> _ 
    Public Sub Should_Call_Into_Repository_For_GetAllUsers() 
    Dim Repository As IUserRepository = MockRepository.GenerateStub(Of IUserRepository)() 
    Dim Service As IUserService = New UserService(Repository) 

    Service.GetAllUserCollection() 

    Repository.AssertWasCalled(Function(x) Wrap_GetAllUserCollection(x)) 
    End Sub 

Function Wrap_GetAllUserCollection(ByVal Repository As IUserRepository) As Object 
    Repository.GetAllUserCollection() 

    Return Nothing 
    End Function 

위의 상호 작용을 기반으로 테스트는 아래에 가까운 수 있습니다 당신이 현재의 예에서 찾고있는

Dim StubUserObject As New User(1, "9999", "jdoe", "John", "Doe", 1) 

    UserService.Stub(Function(x) x.GetUserByID(1)).[Return](StubUserObject) 
0

이 작품을 좋아하니?

MockedPersonRepository_ 
    .Stub(Function(x) x.Find(id))_ 
    .[Return](person)