При написании модульного тестирования в двух разных проектах я понял, что поведение установки в Moq отличается от поведения заглушки в Rhino-Mocks.
Один класс использует Mock, у которого есть один из этих сценариев, где я заглушаю
for (int i=0; i<ObjectAList.Count; i++)
{
_translator.Stub(x => x.TranslateToObjectB(ObjectAList[i])).Return(ObjectBList[i]);
}
, приведенный выше пример работает как чудо.
Но когда я пытался сделать то же самоевещь в другом проекте, который использует Moq, используя настройки, это не удалось.
for (int i=0; i<ObjectAList.Count; i++)
{
_translator.SetUp(x => x.TranslateToObjectB(ObjectAList[i])).Returns(ObjectBList[i]);
}
Вместо этого мне пришлось сделать что-то вроде этого:
int i = 0;
foreach (var ObjectA in ObjectAList)
{
_translator.Setup(x => x.ConvertToProcessingFilter(ObjectA)).Returns(ObjectBList[i]);
i++;
}
Я просто ищу причину, по которой stub vs setup ведет себя так по-разному.Если это ожидаемое от установки, то что эквивалентно заглушке в Moq?