У меня есть метод интерфейса, чья подпись выглядит следующим образом:Как вы выражаете ожидания относительно передачи коллекции в качестве параметра?
void SetValues(IDictionary<string, object> the_values);
У меня есть класс клиента, использующие этот метод. Я хочу, чтобы модульный тест для этого класса проверял, что в конкретном случае передается конкретная пара ключей и значений. Прямо сейчас, если я хочу выразить, что я ожидаю, что метод SetValues
будет вызываться с помощью одного ключа -value пара { "Дата", DateTime (1972,1,2)} Я пишу следующее:
item.Expect(i => i.SetValues(
Arg<IDictionary<string, object>>.Matches(
(items) => (items.Count() == 1 &&
items.First().Key == "Date" &&
(DateTime) items.First().Value == new DateTime(1972,1,2))));
Ожидалось, кажется, работает, но мой это выглядит некрасиво. Есть ли лучший способ выразить ожидания относительно содержимого коллекции, передаваемой в качестве параметра?
на самом деле, это близко к тому, что я в конечном итоге писать. Теперь у меня есть метод утилиты, который выполняет проверку содержимого словаря для произвольного количества пар ключ-значение, вызываемых с помощью метода расширения Rhino.Mocks .Do(). –