所以这是我猜想很多人想要做的事情,嘲笑一个集合。在犀牛过去我喜欢的东西做到了这一点:用犀牛嘲笑嘲笑系列
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());
所以烨这工作得很好,当你的foreach col_mock你得到的嘲笑(custom_mock1等)对象回来。大!我们通过使用类型列表来成功地模拟自定义集合,以实际存储大量模拟对象。
问题是,你只能这样做一次!你只能对这个集合进行一次foreach。有没有人知道(没有创建一个实际的自定义集合...)我如何实现可以迭代多次的自定义集合的模拟?
谢谢!并做得很好,实际上Return(null)和Repeat.Any调用似乎不是必需的。我之前没有使用过WhenCalled,这正是我想要做的。 – MRAH 2010-10-28 14:32:09