2011-08-24 33 views
7

Đối với một số đối tượng, tôi muốn tạo các dấu mặc định để các thuộc tính chung chứa các giá trị. Nhưng trong một số trường hợp, tôi muốn ghi đè hành vi mặc định của mình. Câu hỏi của tôi là, bằng cách nào đó tôi có thể ghi đè lên một giá trị đã được đặt trước?Đặt một tài sản hai lần với tê giác mocks

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

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

Trả lời

0

Sử dụng Expect thay vì StubGenerateMock thay vì GenerateStub sẽ giải quyết này:

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

Không hoạt động cho các phương thức (ít nhất là trong trường hợp của tôi, nơi tôi sử dụng 'Arg ' làm tham số). –

+0

Có thể bạn có thể tạo một câu hỏi mới nêu rõ vấn đề cụ thể của bạn? – Jeroen

+4

Tôi nghĩ người hỏi muốn đặt một số giá trị mặc định, sau đó cho mỗi thay đổi thử nghiệm một trong các giá trị này. I E. không xếp hàng lên một giá trị mới, nhưng thay đổi nó. –

Các vấn đề liên quan