NSubstitute IEnumerable Returns

NSubstitute IEnumerable Returns

我有一个 class 有一个 IEnumerable<object> 属性:

interface ICore {

    IEnumerable<object> enumerable { get; }

}

我需要替换此 IEnumerable<object> 的 return 值。我已经尝试使用 Returns,但是,我收到一条消息,告诉我它在 IEnumerable 上不可用。

有什么想法吗?

NSubstitute 与 IEnumerable 界面完美配合。这是一个例子:

using System.Collections.Generic;
using System.Linq;
using NUnit.Framework;

namespace NSubstitute.Acceptance.Specs.FieldReports
{
    [TestFixture]
    public class SO_42159342
    {
        public interface ICore
        {
            IEnumerable<object> Enumerable { get; }
        }

        [Test]
        public void Test()
        {
            var sub = Substitute.For<ICore>();
            sub.Enumerable.Returns(Enumerable.Empty<object>());
            sub.Enumerable.Returns(new List<object>());
            sub.Enumerable.Returns(_ => new[] {new object()});

            Assert.True(sub.Enumerable.Count() == 1);
        }
    }
}