![](/img/trans.png)
[英]How can I setup the mockRepository return method to return an IEnumerable<T>?
[英]How do I setup a method to return a DbParameter?
我有一个接口,尝试将其模拟为单元测试。 它有一个方法可以接受两个参数,名称和值,并返回要从这些参数构建的DbParameter
public interface IDbUnitOfWork {
DbParameter BuildParameter(string name, object value);
}
我试图建立一个测试案例,可以模拟返回的DbParameter,但遇到了麻烦。
unitOfWorkMock = new Mock<IDbUnitOfWork>();
unitOfWorkFactoryMock = new Mock<IUnitOfWorkFactory>();
unitOfWorkFactoryMock.Setup(u => u.LoadUnitOfWork()).Returns(new Mock<IDbUnitOfWork>().Object);
unitOfWorkMock
.Setup(u => u.BuildParameter(It.IsAny<string>(), It.IsAny<object>()))
.Returns((name, value) => ASDASDASDASD);
如何返回填充有传入参数的DbParameter或模拟的DbParameter?
解决方法(感谢Patrick)
unitOfWorkMock
.Setup(u => u.BuildParameter(It.IsAny<string>(), It.IsAny<object>()))
.Returns((string name, object value) => Mock.Of<DbParameter>(p=> p.ParameterName == name && p.Value == value));
由于DbParameter
是抽象的 ,因此可以被嘲笑,我相信这应该可以解决问题:
unitOfWorkMock
.Setup(u => u.BuildParameter(It.IsAny<string>(), It.IsAny<object>()))
.Returns((name, value) =>
Mock.Of<DbParameter>(x => x.ParameterName == name && x.Value == value)
);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.