2009-12-01 13 views
11

Trong thử nghiệm đơn vị của tôi thay vì IgnoreArguments tôi muốn sử dụng một số kết hợp một phần của đối số trong thử nghiệm tê giác giả. Làm thế nào để làm điều đó?đối số một phần khớp trong tê giác mocks

Cảm ơn, John

Trả lời

16
// arrange 
var fooStub = MockRepository.GenerateStub<IFoo>(); 

// act 
fooStub.Bar("arg1", "arg2", 3); 

// assert 
fooStub.AssertWasCalled(
    x => x.Bar(
     Arg<string>.Is.Equal("arg1"), 
     Arg<string>.Is.Anything, 
     Arg<int>.Is.Equal(3)) 
); 
6

Bạn có thể sử dụng constraints. Bạn bỏ qua các đối số được chuyển vào cuộc gọi mong đợi và sau đó thêm ràng buộc rõ ràng cho mỗi đối số. Ví dụ từ tài liệu Rhino Mocks:

Expect.Call(view.Ask(null,null)).IgnoreArguments().Constraints(
    Is.Anything(), 
    Is.TypeOf(typeof(SomeType))).Return(null);