NSubstitute IEnumerable返回

时间:2017-02-10 12:23:18

标签: nsubstitute

我的班级有IEnumerable<object>属性:

interface ICore {

    IEnumerable<object> enumerable { get; }

}

我需要替换此IEnumerable<object>的返回值。我已经Returns了,但是,我收到一条消息告诉我IEnumerable上没有该消息。

有什么想法吗?

1 个答案:

答案 0 :(得分:3)

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);
        }
    }
}