2010-12-08 5 views
0

Ich bin seit ein oder zwei Tagen daran fest, ich habe vor kurzem begonnen, RhinoMocks (v3.5) zu verwenden, und ich habe einen Test eingerichtet. Ein Stub-Webdienst, der eine List-Auflistung und eine Klasse zurückgibt, die sie aufruft, und ein Scheinobjekt mit einer Eigenschaft, die als Ergebnis des Aufrufs des Webdiensts erwartet wird. Mein Code ist wie folgt:Kann ein RhinoMock-Mock Eigenschaftenwerte enthalten?

[Test] 
    public void Call_WebService_list_populated() 
    { 

     IData stService = MockRepository.GenerateStub<IData>(); 
     IDefault mockView = MockRepository.GenerateMock<IDefault>(); 

     DefaultPresenter presenter = new DefaultPresenter(mockView); 
     presenter.StService = stService; 
     mockView.Stub(x => x.RequestingUser).Return("test"); 
     List<string> testList = new List<string> { new string() }; 
     stService.Stub(x => x.GetList("test")).Return(testList); 

     presenter.LoadList(); 
     Assert.AreEqual(testList,mockView.List); 
    } 

In der Ladeliste Funktion ordnet sie nur die List-Eigenschaft von mockView die Liste aus dem Webservice zurückgegeben. Ich kann den Test mit dieser Zeile arbeiten lassen:
mockView.AssertWasCalled (a => a.StoryListing = testList);
aber ich erwartete, dass das Mock-Objekt Zustand halten würde und ich konnte die Eigenschaft direkt überprüfen. Mache ich etwas falsch oder ist dies nur die Art, wie Sie Rhino Mocks verwenden, dh: das Mock-Objekt kann Zustand nicht halten, wenn ich die Assert.areequal Nunit sagt, die MockView.List -Eigenschaft ist null.

Antwort

0

Standardmäßig behandeln Mocks keine get/set-Eigenschaften (nicht sicher, warum. Es gibt eine Möglichkeit, sie zu ändern, aber ich kann mich nicht mehr daran erinnern). Sie können Ihre mockView als Stub generieren (MockRepository.GenerateStub<IDefault>()) - und Stubs unterstützen das Eigenschaftsverhalten.

+0

Seltsam, dass sie nicht Eigenschaften behandeln, aber ich nehme an, dass ich einen Stub verwenden könnte, nur semantisch ein Stub wäre nicht für den Zweck, den ich es benutze, vielleicht wie Sie sagen, es gibt einen Weg, es zu ändern. Vielen Dank! –

Verwandte Themen