#c# #rhino-mocks
#c# #rhino-издевается
Вопрос:
Можно ли установить возвращаемое значение «по умолчанию» для заглушки RhinoMock?
Например: у меня есть метод, который принимает int
значение от 1-175 и возвращает bool:
internal bool myFunction(int number)
Я хочу заглушить это в Rhino Mock, чтобы оно возвращалось только true
в том случае, если значение number
равно 2 или 3, и false в противном случае:
myClass.Stub(x => x.MyFunction(2)).Return(true);
myClass.Stub(x => x.MyFunction(3)).Return(true);
// return false otherwise
Однако, если я передам любое другое значение int в своем тесте (например, 100), функция также вернет true . Я хочу, чтобы он возвращал false во всех случаях, кроме двух, которые я перечислил выше. Как я могу это сделать?
Комментарии:
1. один из способов
if(number == 2 || number == 3) { myClass.Stub(...);}
и т. Д. … Может быть лучшим способом (отсюда и этот комментарий против ответа)
Ответ №1:
Используется Do
для предоставления реализации метода доступа к входным параметрам
myClass.Stub(_ => _.MyFunction(Arg<int>.Is.Anything))
.Do((Func<int, bool>)(number => {
return number == 2 || number == 3;
}));