2011-08-24 12 views
7

Bazı nesneler için, varsayılan özellikler oluşturmak istiyorum, böylece ortak özellikler değerler içeriyor. Ancak bazı durumlarda varsayılan davranışlarımı geçersiz kılmak istiyorum. Sorum şu, bir şekilde mahsur kalmış bir değerin üzerine yazabilir miyim?Bir özelliği iki kez gergedanlarla geçirme

//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

Bkz http://stackoverflow.com/questions/770013/rhino-mocks-how-to-clear- nesneler üzerinde önceki beklentiler – Ted

cevap

0

bu çözecektir yerine Stub ait Expect ve GenerateMock yerine GenerateStub kullanma:

//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

Yöntemler için işe yaramıyor (en azından benim argüman olarak kullanıyorum "Arg " parametresi olarak). –

+0

Belki de sorununuzu belirten yeni bir soru oluşturabilir misiniz? – Jeroen

+4

Sorunun varsayılan olarak bir dizi değer belirlemesini istediğini, sonra her bir test değişikliği için bu değerlerden birini istediğini düşündüm. Yani yeni bir değeri sıraya koymak değil, değiştirmek. –