Tôi có thể thay đổi hành vi của một cuống trong thời gian chạy không? Một cái gì đó như:Làm thế nào để thay đổi hành vi của cuống?
public interface IFoo { string GetBar(); }
[TestMethod]
public void TestRhino()
{
var fi = MockRepository.GenerateStub<IFoo>();
fi.Stub(x => x.GetBar()).Return("A");
Assert.AreEqual("A", fi.GetBar());
fi.Stub(x => x.GetBar()).Return("B");
Assert.AreEqual("B", fi.GetBar()); // Currently fails here
}
mã ví dụ của tôi vẫn không trong dòng nhất định, fi.GetBar()
vẫn trả "A"
.
Hoặc có một mẹo khác để mô hình hóa các ca có hành vi thay đổi theo thời gian không? Tôi không muốn sử dụng fi.Stub(...).Do(...)
.
Ah, có lẽ tôi chỉ cần bản cứng của sổ tay tinh xảo để ai đó đánh vào đầu tôi bằng nó. Có vẻ như nó thực sự rõ ràng, nhưng tôi không thể tìm thấy nó.
Hãy thử 'fi.Stub (x => x.GetBar()) Trả về (" A ") Lặp lại.Once();' và 'fi.Stub (x => x.GetBar()). "B"). Repeat.Once(); ' –