我一直在 DotNetKicks 等上看到这一点......但无法确切知道它是什么(英文)或它的作用?你能解释一下它是什么,或者我为什么要使用它吗?
leen3o
问问题
33780 次
3 回答
36
Moq是 C#/.NET 的模拟框架。它在单元测试中用于将被测类与其依赖项隔离开来,并确保调用依赖对象上的正确方法。有关模拟的更多信息,您可能需要查看关于Mock Objects的 Wikipedia 文章。
其他模拟框架(用于 .NET)包括JustMock、TypeMock、 RhinoMocks、nMock等。
于 2009-03-24T19:29:18.620 回答
20
简单来说,Moq 是一个库,当您将其包含在项目中时,您可以轻松地进行单元测试。为什么?因为一个函数可能会调用另一个函数,然后是另一个函数,依此类推。但实际上需要的是第一次调用的返回值以继续下一行。Moq 有助于忽略该方法的实际调用,而是返回该函数返回的内容。并在所有代码行执行后验证,你想要的是你得到什么。英语太多了,举个例子:
String Somethod()
{
IHelper help = new IHelper();
String first = help.firstcall();
String second= secondcall(first);
return second;
}
现在,这里first
需要 for secondcall()
,但您实际上不能help.firstcall()
在其他层调用它。所以 Mocking 完成了,假装该方法被调用:
[TestMethod]
public void SomeMethod_TestSecond
{
mockedIHelper.Setup(x=>x.firstcall()).Returns("Whatever i want");
}
在这里,想想,SetUP
作为伪造的方法调用,我们只是对Returns
.
于 2013-08-14T19:13:20.850 回答
3
Moq 是一个用于 .Net TDD 的模拟引擎。
于 2009-03-24T19:29:29.447 回答