MOQ - настройка метода на основе значений аргументов (несколько аргументов)

У меня есть интерфейс, определенный как

interface IMath
{
 AddNumbersBetween(int lowerVal, int upperVal);
}

. Я могу настроить базовый Moq для вышеупомянутого следующим образом:

Mock<IMath> mock = new Mock<IMath>();    
mock.Setup(m => m.AddNumbersBetween(It.IsAny<int>(), It.IsAny<int>()));

вызовите его

mock.Object.AddNumbersBetween(1,4);

, а затем убедитесь, что он был вызван

mock.Verify(m => m.AddNumbersBetween(1,4), Times.AtleastOnce());

Я не могу понять, как настроить метод AddNumbersBetween таким образом, чтобы, если верхнийVal ниже нижнегоVal, выдается исключение

mock.Object.AddNumbersBetween(4,1);//should throw an exception

По сути, выглядит для чего-то вроде:

mock.Setup(foo => foo.AddNumbersBetween("arg1 is higher than arg2")).Throws<ArgumentException>();
53
задан Raj Rao 2 November 2010 в 08:30
поделиться