我的班级有IEnumerable<object>
属性:
interface ICore {
IEnumerable<object> enumerable { get; }
}
我需要替换此IEnumerable<object>
的返回值。我已经Returns
了,但是,我收到一条消息告诉我IEnumerable
上没有该消息。
有什么想法吗?
答案 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);
}
}
}