Так что, думаю, многие люди хотят сделать это, издеваться над коллекцией. В прошлом с Rhino я делал это с чем-то вроде:
var col_mock = MockRepository.GenerateMock<ICustomCollection>(); // returns ICustom let's say
List<ICustom> col_real = new List<ICustom>();
col_real.Add(custom_mock1);
col_real.Add(custom_mock2);
col_real.Add(custom_mock3);
col_mock.Stub(x => x.GetEnumerator()).Return(col_real.GetEnumerator());
Так что да, это работает нормально, когда вы передаете col_mock, вы получаете возвращенные объекты (custom_mock1 и т. Д.). Большой! Мы успешно смоделировали пользовательскую коллекцию, используя типизированный список для хранения загруженных объектов.
Проблема в том, что вы можете сделать это только один раз! вы можете проповедовать эту коллекцию только один раз. Кто-нибудь знает (не создавая фактическую пользовательскую коллекцию ...), как я могу добиться макета пользовательской коллекции, которую можно повторять более одного раза?