Khi thực hiện dòng thứ hai của mã này Rhino Mocks ném một InvalidOperationException với một thông điệp "Hành động này là không hợp lệ khi các đối tượng giả ở trạng thái phát lại"Khi nào một đối tượng giả nhập vào trạng thái phát lại?
var mockScanner = MockRepository.GenerateMock<PortScanner>(null);
mockScanner.Expect((scanner => { scanner.Scan(null, null); }));
Đẩy mạnh thông qua các mã trong một trình gỡ lỗi người ta có thể thấy debugger chạy phương thức được định nghĩa trong lớp và trực tiếp sau khi kiểm soát rời khỏi phương thức này ngoại lệ xảy ra.
Mã này tương tự như trong thử nghiệm khác làm việc mà không vấn đề
var mockView = MockRepository.GenerateMock<IScanView>(null);
mockView.Expect(view => { view.Close(); });
var controller = new ScanController(mockView);
controller.Exit();
mockView.VerifyAllExpectations();
Sự khác biệt duy nhất mà tôi có thể nghĩ rằng có thể là của bất kỳ consequense giữa theese hai bài kiểm tra là Exit đó là một thành viên trên một giao diện trong khi Scan là thành viên ảo trên một lớp học
Tôi đang thiếu gì?
Cập nhật
thăm dò sâu hơn đã chỉ ra rằng điều này có liên quan đến cách xử lý Rhino phương pháp ảo. Tôi đang tập trung nghiên cứu mmy của tài liệu tại đây ngay bây giờ
Tôi vừa đọc về việc này hôm nay. Liên kết tài liệu tới mục nhập Rhino Mocks wiki là: http://ayende.com/Wiki/(S(vcy2bn55h5cja0vsedn14y45))/Rhino+Mocks+-+Internal+Methods.ashx –