2010-03-03 4 views
1

Nous utilisons MVP (Superviseur Superviseur) pour ASP.NET WebForms avec 3.5 SP1.Vue moqueuse avec RhinoMocks

Quelle est la méthode préférée pour vérifier la valeur d'une propriété d'affichage ayant uniquement une opération définie avec RhinoMocks?

Voici ce que nous avons à ce jour:

var service = MockRepository.GenerateStub<IFooService>(); 
// stub some data for the method used in OnLoad in the presenter 

var view = MockRepository.GenerateMock<IFooView>(); 
var presenter = new FooPresenter(view, service); 

view.Raise(v => v.Load += null, this, EventArgs.Empty); 

Assert.IsTrue(view.Bars.Count == 10); // there is no get on Bars 

Doit-on utiliser ou d'une autre façon Attend, toute entrée serait super.

Merci

mise à jour basée sur la réponse de Darin Dimitrov.

var bars = new List<Bar>() { new Bar() { BarId = 1 } }; 

var fooService = MockRepository.GenerateStub<IFooService>(); 

// this is called in OnLoad in the Presenter 
fooService.Stub(x => x.GetBars()).Return(bars); 

var view = MockRepository.GenerateMock<IFooView>(); 
var presenter = new FooPresenter(view, fooService); 

view.Raise(v => v.Load += null, this, EventArgs.Empty); 
view.AssertWasCalled(x => x.Bars = bars); // this does not pass 

Cela ne fonctionne pas. Dois-je le tester de cette façon ou y a-t-il un meilleur moyen?

Répondre

0

Vous pouvez affirmer que le setter de la propriété Bars a été appelé avec un argument correct. En supposant que la Bars propriété est un tableau de chaînes:

// arrange 
var view = MockRepository.GenerateMock<IFooView>(); 
var bars = new[] { "bars" }; 

// act 
view.Bars = bars; 

// assert 
view.AssertWasCalled(
    x => { x.Bars = bars; } 
); 

Cela devrait également travailler:

view.AssertWasCalled(
    x => { x.Bars = new[] { "abc" }; } 
); 
+0

Merci pour la réponse, il est logique. J'ai mis à jour ma question en fonction de votre aide. – blu

Questions connexes