Tôi đang sử dụng Moq như khuôn khổ mocking của tôi và tôi cần phải kiểm tra một lớp học khi một loại ngoại lệ cụ thể được chạy nó sẽ tiếp tục cố gắng cho đến khi tình hình được giải quyết một khi điều đó xảy ra việc thực hiện kết thúc.Làm thế nào để làm cho một giả ném một ngoại lệ lần đầu tiên và trả về một giá trị thứ hai
Vì vậy, những gì tôi cần là một cái gì đó tương tự như:
myMock = Mock<IFoo>();
myMock.Setup(m => m.Excecute()).Throws<SpecificException>();
myMock.Setup(m => m.Execute());
var classUnderTest = MyClass(myMock);
classUnderTest.DoSomething();
Assert.AreEqual(expected, classUnderTest.Result);
Nhờ sự giúp đỡ bạn có thể cho.
Điều đó có vẻ thú vị nhưng, nếu phương pháp này là void và tôi không nhận được phương thức "Trả về" sau khi thiết lập? Và thực tế nó hoạt động nếu "GetCountThing" trả về một int, nó sẽ không biên dịch nếu nó trả về cái gì khác. –
@SergioRomero - vui lòng xem câu trả lời đã chỉnh sửa. – TrueWill
Đối với nếu nó không phải là một int, thay đổi những gì bạn đang trở về từ dòng 'Returns'. Nó không phải là giá trị của 'cuộc gọi'. – TrueWill