2012-05-08 14 views
8

thể trùng lặp:
How to mock a method that returns an int with MOQSử dụng Moq để Stub một phương pháp giao diện

Dưới đây là giao diện của tôi:

public interface ICalenderService 
    { 
     DateTime Adjust(DateTime dateToAdjust, BusinessDayConvention convention, List<HolidayCity> holidayCities); 
    } 

tôi đã thực hiện một số nghiên cứu và có vẻ như bạn có thể giả lập điều này một cách dễ dàng, nhưng tôi muốn khai thác nó bằng cách sử dụng Moq để tôi có thể chuyển phần sơ đồ vào các lớp khác của tôi và có trả lại lợi nhuận bất cứ điều gì DateTime Tôi muốn cho phương pháp Adjust của nó.

Cách dễ nhất để thực hiện việc này là gì?

Chỉnh sửa: Tôi biết tôi có thể tạo bài viết của riêng mình trong dự án, nhưng tôi muốn viết ít mã hơn và tôi nghĩ Moq có thể cho phép tôi làm điều đó, tôi không biết cú pháp trông như thế nào.

+0

Tôi không nghĩ câu hỏi này trùng lặp. Ví dụ trong câu hỏi khác có một phương thức không tham số, nhưng phương thức trên giao diện này cho thấy ba thông số cần được mô phỏng. –

Trả lời

14

Thiết lập còn sơ khai như thế này:

var calendarServiceStub = new Mock<ICalenderService>(); 

calendarServiceStub 
    .Setup(c => c.Adjust(It.IsAny<DateTime>(), It.IsAny<BusinessDayConvention>(), It.IsAny<List<HolidayCity>>())) 
    .Returns(theDateTimeResultYouWant); 

đèo calendarServiceStub.Object để xây dựng các lớp khác.

+0

cảm ơn bạn rất nhiều !! – slandau