Tôi đang tìm cách tìm ra cách tôi có thể thử phương thức trả về giá trị khác khi lần thứ hai được gọi thời gian. Ví dụ: một cái gì đó như thế này:RhinoMocks - chế nhạo một phương thức có giá trị trả về thay đổi (ngay cả khi chuyển cùng một thông số) với nhiều cuộc gọi
public interface IApplicationLifetime
{
int SecondsSinceStarted {get;}
}
[Test]
public void Expected_mock_behaviour()
{
IApplicationLifetime mock = MockRepository.GenerateMock<IApplicationLifetime>();
mock.Expect(m=>m.SecondsSinceStarted).Return(1).Repeat.Once();
mock.Expect(m=>m.SecondsSinceStarted).Return(2).Repeat.Once();
Assert.AreEqual(1, mock.SecondsSinceStarted);
Assert.AreEqual(2, mock.SecondsSinceStarted);
}
Có điều gì khiến điều này có thể xảy ra không? Bên cạnh việc thực hiện một phụ cho getter mà thực hiện một máy nhà nước?
Cheers fellas,
Alex
Hãy xem các mocks đã đặt hàng và không có thứ tự: http://ayende.com/wiki/Rhino%20Mocks%20Ordered%20and%20Unordered.ashx – Maciej
Có vấn đề gì với mã bạn đã cung cấp? 'Repeat.Once()' nên làm việc –
@lazyberezovsky Cuộc gọi đầu tiên tới m.SecondsSinceStarted trả về 2, không 1 như mong đợi – AlexC