На простом английском языке 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
.