2011-08-24 2 views
7

Dla niektórych obiektów chcę utworzyć domyślne kody pośredniczące, aby wspólne właściwości zawierały wartości. Ale w niektórych przypadkach chcę nadpisać moje domyślne zachowanie. Moje pytanie brzmi: czy mogę w jakiś sposób zastąpić już wartość zogniskowaną?Dwukrotne przeszukanie właściwości za pomocą szumowiny na nosorożcu

//First I create the default stub with a default value 
var foo = MockRepository.GenerateStub<IFoo>(); 
foo.Stub(x => x.TheValue).Return(1); 

//Somewhere else in the code I override the stubbed value 
foo.Stub(x => x.TheValue).Return(2); 

Assert.AreEqual(2, foo.TheValue); //Fails, since TheValue is 1 
+0

Zobacz http://stackoverflow.com/questions/770013/rhino-mocks-how-to-clear- previous-expectations-on-an-object – Ted

Odpowiedz

0

Korzystanie Expect zamiast Stub i GenerateMock zamiast GenerateStub rozwiąże to:

//First I create the default stub with a default value 
var foo = MockRepository.GenerateMock<IFoo>(); 
foo.Expect(x => x.TheValue).Return(1); 

//Somewhere else in the code I override the stubbed value 
foo.Expect(x => x.TheValue).Return(2); 

Assert.AreEqual(1, foo.TheValue); 
Assert.AreEqual(2, foo.TheValue); 
+3

Nie działa dla metod (przynajmniej w moim przypadku, gdy używam 'Arg ' jako parametrów). –

+0

Może mógłbyś stworzyć nowe pytanie z konkretnym problemem? – Jeroen

+4

Myślałem, że pytający chciał ustawić pewną liczbę wartości jako domyślną, a następnie dla każdej z nich należy zmienić jedną z tych wartości. To znaczy. nie kolejkowanie nowej wartości, ale jej zmienianie. –

Powiązane problemy