用NInject Mocking Kernel模拟返回接口的方法

本文关键字:接口 方法 返回 模拟 NInject Mocking Kernel | 更新日期: 2023-09-27 18:05:25

假设我有一个这样的界面。

public interface ICamProcRepository
{
    List<IAitoeRedCell> GetAllAitoeRedCells();
    IAitoeRedCell CreateAitoeRedCell();
}
如何模拟返回一个接口和一个接口对象列表的方法?我使用的是Ninject.MockingKernel.Moq
var mockingKernel = new MoqMockingKernel();
var camProcRepositoryMock = mockingKernel.GetMock<ICamProcRepository>();
camProcRepositoryMock.Setup(e => e.GetAllAitoeRedCells()).Returns(?????WHAT HERE?????);
camProcRepositoryMock.Setup(e => e.CreateAitoeRedCell()).Returns(?????WHAT HERE?????);

用NInject Mocking Kernel模拟返回接口的方法

在您的示例中,您需要为所讨论的模拟接口创建所需结果的模拟,并通过内核或直接moq将它们传递给其设置的Returns。我不知道Ninject能不能帮到你这里有一个简单的Moq例子

var mockingKernel = new MoqMockingKernel();
var camProcRepositoryMock = mockingKernel.GetMock<ICamProcRepository>();
var fakeList = new List<IAitoeRedCell>();
//You can either leave the list empty or populate it with mocks.
//for(int i = 0; i < 5; i++) {
//    fakeList.Add(Mock.Of<IAitoeRedCell>());
//}
camProcRepositoryMock.Setup(e => e.GetAllAitoeRedCells()).Returns(fakeList);
camProcRepositoryMock.Setup(e => e.CreateAitoeRedCell()).Returns(() => Mock.Of<IAitoeRedCell>());

如果被模拟对象也需要提供伪功能,则必须相应地设置too。

相关文章: