2011-04-27 25 views
8

error:problemas burla de Rhino con colocador privada en trozo

You are trying to set an expectation on a property that was defined to use PropertyBehavior. Instead of writing code such as this: mockObject.Stub(x => x.SomeProperty).Return(42); You can use the property directly to achieve the same result: mockObject.SomeProperty = 42;

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

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

¿Qué estoy haciendo mal?

+1

Encontré la solución. Salir del proyecto para poder elegir una herramienta que funcione. E.g Moq – Daniel

Respuesta

7

Creo que usar un simulacro en lugar de un talón soluciona el problema, pero puede haber una mejor manera en la que me estoy perdiendo.

 var x = MockRepository.GenerateMock<MyClass>(); 
     x.BackToRecord(BackToRecordOptions.PropertyBehavior); 
     SetupResult.For(x.Items).Return(new List<Item>()); 
     x.Replay(); 
+0

Tengo el mismo problema, y ​​usar un simulacro también funciona para mí. No entiendo esta limitación en Stubs. –

2

una forma más limpia de lo que sería:

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

Simplemente no entiendo por qué GenerateStub no funciona.

+0

puede confirmar esto, creo que es un error que no funciona con GenerateStub – xhafan

0

He recibido el mismo mensaje. Mi problema era que estaba tratando de resguardar una propiedad no virtual en una clase concreta.

Cuestiones relacionadas