Bất cứ ai có thể cho tôi biết tại sao trên thế giới thử nghiệm sau đây không phải là thất bại?Rhino Mocks: Repeat.Once() không hoạt động?
[Test]
public void uhh_what() {
var a = MockRepository.GenerateMock<IPrebuiltNotifier>();
a.Expect(x => x.Notify()).Repeat.Once();
a.Notify();
a.Notify();
a.VerifyAllExpectations();
}
Thực sự cần một cặp mắt thứ hai để xác nhận tôi không điên ... bây giờ tôi lo lắng rằng tất cả các thử nghiệm của tôi không đáng tin cậy.
oh! Tôi không biết rằng AssertWasCalled đã có một đối số thứ hai, nơi bạn có thể làm thêm thông số kỹ thuật, điều này thay đổi tất cả mọi thứ! –
Đó là vấn đề tương tự với PartialMock, nếu bạn từng bước vào nó. – Dennis
Giải pháp đầu tiên (nơi bạn ném một ngoại lệ) _will_ thực hiện kiểm tra thất bại nếu 'Thông báo' được gọi nhiều lần. Tuy nhiên, nếu nó chỉ được gọi một lần (ít nhất đó là những gì tôi giả định mã đang được kiểm tra nên làm), kiểm tra sẽ không vượt qua vì nó nên bởi vì nó mong đợi một cuộc gọi _second_ để 'Notify' mà không bao giờ đến. Thiết lập 'a.Expect (x => x.Notify()). Repeat.Once()' theo sau bởi 'a.Stub (x => x.Notify()). Ném (...)' để làm việc làm. – geoffmazeroff