2009-05-12 7 views
2

J'essaie de créer un test unitaire similaire à celui que j'aurais fait en C# mais je suis aux prises avec les lambdas en vb. Fondamentalement, j'essaie de se moquer d'une classe, puis de créer un talon et de revenir. En C# j'aurais fait quelque chose comme;Utilisation de Lambda dans Test d'unité dans VB.NET 2008 avec Rhino.Mocks

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

Mais dans Visual Basic, je suis en train de faire la même chose, mais ne peut pas travailler la syntaxe

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

Des conseils sur la façon de reproduire le ci-dessus serait grandement appréciée!

Meilleures salutations, Dom

Répondre

3

Un exemple simple je montre en général (comme je suis un développeur VB aussi) est le suivant: (pour une raison étrange en VB vous devez tirer ceci dans une autre fonction ne retourne rien)

<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 

ci-dessus est pour les tests à base de l'interaction, le ci-dessous pourrait être plus proche de ce que vous cherchez dans votre exemple actuel

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

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

Est-ce que quelque chose comme ce travail?

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