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

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

Ответы

Ответ 1

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

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

Ответ 2

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

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

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

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

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

Ответ 4

Moq - это насмешливый движок для выполнения .Net TDD.