частичное совпадение аргумента в насмешках носорога - PullRequest
11 голосов
/ 01 декабря 2009

В моем модульном тесте вместо IgnoreArguments я хочу использовать частичное совпадение аргументов при тестировании носорогов носорога. Как это сделать?

Спасибо, John

Ответы [ 2 ]

16 голосов
/ 01 декабря 2009
// 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 голосов
/ 18 декабря 2009

Вы можете использовать ограничения . Вы игнорируете аргументы, переданные в ожидание вызова, а затем добавляете явные ограничения для каждого аргумента. Пример из документации Rhino Mocks:

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