J'utilise RhinoMocks, et j'ai un Mock qui a une propriété dont j'ai besoin de se comporter comme une propriété réelle - mettre à jour sa valeur quand il est défini et déclencher PropertyChanged lorsque la propriété est modifiée.Création de mocks trigger PropertyChanged en cas de modification
L'interface de l'objet moqué est en substance ceci:
public interface IFoo
{
event PropertyChangedEventHandler PropertyChanged;
int Bar { get; set; }
}
Lors de la création de la maquette, je mis propertybehavior - ce qui en fait réellement mettre à jour sa valeur truquée:
var mocks = new MockRepository();
var fakeFoo = mocks.DynamicMock<IFoo>();
SetupResult.For(fakeFoo.Bar).PropertyBehavior();
Mais quand je mets à jour la valeur PropertyChanged n'est pas déclenchée. Maintenant, l'interface n'implémente pas l'interface INotifyPropertyChanged car il s'agit d'une interface .. Comment puis-je déclencher PropertyChanged?
+1 mais ce n'est pas un bout. Le terme de test unitaire pour une implémentation simplifiée créée manuellement est un "faux". Ce post du blog google testing donne quelques bonnes définitions: http://googletesting.blogspot.com/2008/06/tott-friends-you-can-depend-on.html Et cet article de Martin Fowler: http: // martinfowler.com/articles/mocksArentStubs.html –
Vous avez raison. Je dois changer d'habitude pour appeler ce talon! J'ai changé l'exemple maintenant de FooStub à FooFake. – Enceradeira