Какая польза от Moq? - PullRequest
       17

Какая польза от Moq?

20 голосов
/ 24 марта 2009

Я вижу, что это упоминается на DotNetKicks и т. Д. ... И все же не могу точно выяснить, что это (на английском языке) или что он делает? Не могли бы вы объяснить, что это такое, или почему я бы это использовал?

Ответы [ 3 ]

29 голосов
/ 24 марта 2009

Moq - это фреймворк для C # /. NET. Он используется в модульном тестировании, чтобы изолировать тестируемый класс от его зависимостей и обеспечить вызов соответствующих методов для зависимых объектов. Для получения дополнительной информации о насмешках вы можете обратиться к статье Википедии о Mock Objects .

Другие фреймворки (для .NET) включают JustMock , TypeMock , RhinoMocks , nMock , .etc.

13 голосов
/ 14 августа 2013

На простом английском языке Moq - это библиотека, которая, когда вы включаете ее в свой проект, дает вам возможность легко выполнять модульное тестирование. Зачем? Потому что одна функция может вызывать другую, потом другую и так далее. Но в действительности то, что нужно, просто возвращаемое значение от первого вызова, чтобы перейти к следующей строке. Moq помогает игнорировать фактический вызов этого метода, и вместо этого вы возвращаете то, что возвращала эта функция. и проверьте после выполнения всех строк кода, что вы хотите, то, что вы получаете или нет. Слишком много английского, вот пример:

String Somethod()
{
  IHelper help = new IHelper();
  String first = help.firstcall();
  String second= secondcall(first);
  return second;
}

Теперь, здесь first необходимо для secondcall(), но на самом деле вы не можете вызвать help.firstcall(), как в каком-то другом слое. Итак, издевательство закончено, фальшивый метод был вызван:

[TestMethod]
public void SomeMethod_TestSecond
{
  mockedIHelper.Setup(x=>x.firstcall()).Returns("Whatever i want");  
}

Вот, думаю, SetUP как фальшивый вызов метода, нас просто интересует Returns.

3 голосов
/ 24 марта 2009

Moq - движок для создания .Net TDD.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...