我一直看到DotNetKicks上提到的这个......然而却无法确切地知道它是什么(英文)或它的作用?你能解释它是什么,或者为什么我会用它?
Moq是C#/ .NET的模拟框架.它用于单元测试,以将被测试的类与其依赖关系隔离开来,并确保调用依赖对象上的正确方法.有关模拟的更多信息,您可能需要查看维基百科关于模拟对象的文章.
其他模拟框架(用于.NET)包括JustMock,TypeMock, RhinoMocks,nMock,.etc.
简单的英语,Moq是一个库,当你在项目中包含时,你可以轻松地进行单元测试.为什么?因为一个函数可能会调用另一个函数,然后是另一个函 但实际上需要的是,只需从第一次调用返回到下一行的返回值.Moq有助于忽略该方法的实际调用,而是返回该函数返回的内容.并且在所有代码行执行后验证,你想要的是你得到了什么.英语太多了,所以这里有一个例子:
String Somethod() { IHelper help = new IHelper(); String first = help.firstcall(); String second= secondcall(first); return second; }
现在,这里first
需要secondcall()
,但你实际上不能help.firstcall()
在其他层中调用它.所以Mocking已经完成,假装该方法被称为:
[TestMethod] public void SomeMethod_TestSecond { mockedIHelper.Setup(x=>x.firstcall()).Returns("Whatever i want"); }
在这里,想想,SetUP
作为伪造方法调用,我们只是感兴趣Returns
.