2010-09-20 32 views
13

là nó hợp pháp để MOQ một lớp học mà không kế thừa một giao diện như sau:Cần MOQ Mock Class

var mockIActionService = new Mock<IActionService>(); 
var mockValidAgeRule = new Mock<ValidAgeRule>(mockIActionService.Object); 

tôi tiêm IService vào ValidAgeRule mà chỉ là một lớp đơn giản với một phương pháp gọi là "thực thi" . Câu hỏi của tôi là làm thế nào để tôi xác minh rằng đã được gọi. Bất cứ khi nào tôi thử:

mockValidAgeRule.Verify(x => x.Execute(app)); //Where App is a valid object 

có ai biết cách thực hiện việc này không?

+0

Tôi nghĩ rằng bạn quên bao gồm những gì sẽ xảy ra khi bạn cố gắng gọi mockValidAgeRule.Verify(). Tôi giả định thử nghiệm không thành công mặc dù bạn chắc chắn Execute đã được gọi. –

Trả lời

20

Tôi tin rằng bạn cần thực hiện phương pháp Thực thi ảo của mình.

Hiểu biết của tôi là Moq tạo lớp con của lớp trong trường hợp này và cần ghi đè phương pháp của bạn để theo dõi xem liệu nó có được gọi hay không.

+0

ya Tôi đã chú ý để biến nó thành ảo –