使用起订量,我需要在现有的基础上创建一个假的class(不是接口*)有没有默认的ctor.
我可以使用“传统”语法来做到这一点:
var fakeResponsePacket = new Mock<DataResponse>(
new object[]{0, 0, 0, new byte[0]}); //specify ctor arguments
fakeResponsePacket.Setup(p => p.DataLength).Returns(5);
var checkResult = sut.Check(fakeResponsePacket.Object);
我的问题是:有没有办法使用较新的方法来做同样的事情Mock.Of<T>()
句法 ?
据我所见,只有两个重载Mock.Of<T>
,都不接受参数:
//1 no params at all
var fakeResponsePacket = Mock.Of<DataResponse>(/*??*/);
fakeResponsePacket.DataLength = 5;
//2 the touted 'linq to Moq'
var fakeResponsePacket = Mock.Of<DataResponse>(/*??*/
p => p.DataLength == 5
);
var checkResult = sut.Check(fakeResponsePacket);
--
* I wanted使用接口。但后来现实发生了。我们先不深究。
不,似乎没有办法做到这一点。
旁注:在“旧”语法中,您可以只写:
new Mock<DataResponse>(0, 0, 0, new byte[0]) //specify ctor arguments
因为数组参数有params
(a 参数数组 https://msdn.microsoft.com/en-us/library/w5zay9db.aspx).
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)