8 votes

Problèmes de Rhino Mocks avec un setter privé dans un stub

Erreur :

Vous essayez de définir une attente sur une propriété qui a été définie pour utiliser PropertyBehavior. Au lieu d'écrire du code comme ceci : mockObject.Stub(x => x.SomeProperty).Return(42); Vous pouvez utiliser la propriété directement pour obtenir le même résultat : mockObject.SomeProperty = 42;

var x = MockRepository.GenerateStub();
x.Stub(s => s.Items).Return(new List());

public class MyClass
{
    public virtual IEnumerable Items
    {
        get {return _items;}
        private set {_items = value;}
    }
}

Qu'est-ce que je fais de faux ?

8voto

MonkeyPushButton Points 979

Je pense qu'utiliser un Mock plutôt qu'un stub contourne le problème, mais il peut y avoir une meilleure façon que j'ignore.

        var x = MockRepository.GenerateMock();
        x.BackToRecord(BackToRecordOptions.PropertyBehavior);
        SetupResult.For(x.Items).Return(new List());
        x.Replay();

2voto

Daniel Points 2657

Une manière plus propre serait :

var x = MockRepository.GenerateMock();
x.Stub(s => s.Items).Return(new List());

Je ne comprends simplement pas pourquoi GenerateStub ne fonctionne pas.

1voto

MoMo Points 5587

J'ai reçu ce même message. Mon problème était que j'essayais de stubber une propriété non virtuelle sur une classe concrète.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X