C# xUnit-如何在类的真实对象上设置mock方法
这是我编写单元测试的代码:C# xUnit-如何在类的真实对象上设置mock方法,c#,.net,moq,xunit,C#,.net,Moq,Xunit,这是我编写单元测试的代码: public override BaseSupportModel BuildData(long? parentId) { List<ParentModel> parents = ParentMapper.MinMap(GetAll<Parent>().AsEnumerable()); supportModel.Lists.Add("parentList"
public override BaseSupportModel BuildData(long? parentId)
{
List<ParentModel> parents = ParentMapper.MinMap(GetAll<Parent>().AsEnumerable());
supportModel.Lists.Add("parentList", parents );
return supportModel;
}
我需要设置GetAll
方法,该方法由BuildData方法调用以返回测试数据
如何设置此方法以返回实际实例的测试数据
s.Setup(i => i.GetAll()).Returns(new List<Parent>().AsQueryable());
s.Setup(i=>i.GetAll()).Returns(newlist().AsQueryable());
这段代码显然没有任何区别
有什么办法让它工作吗
[Fact()]
public void BuildDataTest()
{
//setup dependencies
var services = new Microsoft.Extensions.DependencyInjection.ServiceCollection();
ServiceCollection.Register(services);
var serviceProvider = services.BuildServiceProvider();
DependencyResolver.Init(serviceProvider);
//create real object.
var builder = new ExampleBuilder();
// Trying to mock method which doesn't work
var s = new Mock<IBasicManager<Parent>>();
s.Setup(i => i.GetAll()).Returns(new List<Parent>().AsQueryable());
var response = builder.BuildData(1);
Assert.NotNull(response);
}
s.Setup(i => i.GetAll()).Returns(new List<Parent>().AsQueryable());