RhinoMocks ожидает сложный объект в качестве параметра - PullRequest
7 голосов
/ 22 марта 2011

Я использую RhinoMocks без проблем для проверки с помощью AssertWasCalled, если мой метод вызывался с простыми параметрами, такими как Arg.Is.Equal (1) и т. Д.

Однако, это терпит неудачу, когда я пытаюсь ожидать сложного объекта моего собственного создания, например

Arg<CustomClass>.Is.Equal(CustomClassInstance)

Конечно, я хорошо знаю, что это не должно работать, потому что ссылки не совпадают. Однако мой вопрос: как мне заставить это работать? Как заставить RhinoMocks ожидать объект с определенными значениями внутри?

1 Ответ

9 голосов
/ 22 марта 2011

Вы можете использовать Arg<T>.Matches (Predicate<T> predicate), например:

mock.AssertWasCalled (m => m.Foo (Arg<CustomClass>.Matches (c => c.Foo == CustomClassInstance.Foo));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...