0

我是 Moles 的新手,所以请原谅这个简单的问题,但根据文档,我认为这应该可行:

        MDataServiceCollection<string> dataServiceCollectionMock = new
            MDataServiceCollection<string>();

        new MCollection<string>(dataServiceCollectionMock)
        {
            SystemCollectionsIEnumerableGetEnumerator = () =>
            {
                return new List<string>(new string[] { "a", "b", "c" }).GetEnumerator();
            }
        };

        string result = string.Empty;
        foreach (string s in dataServiceCollectionMock.Instance)
        {
            result += s;
        }

我正在用我自己的实现替换 GetEnumerator,这样我就可以在使用 DataServiceCollection 的实例时注入我迭代的值。我期待 s 返回“abc”。但是我得到以下异常:

Microsoft.Moles.Framework.Moles.MoleNotImplementedException:Collection`1.GetEnumerator() 未被破坏。

非常感谢任何帮助。

问候,克里斯。

4

1 回答 1

0

制定了解决方案 - 调用错误的方法来解决问题。

而不是:

SystemCollectionsIEnumerableGetEnumerator = () =>
        {
            return new List<string>(new string[] { "a", "b", "c" }).GetEnumerator();
        }

应该:

GetEnumerator = () =>
        {
            return new List<string>(new string[] { "a", "b", "c" }).GetEnumerator();
        }
于 2012-04-25T08:06:03.433 回答