Я получаю объект Moq для возврата различных значений при последовательных вызовах метода. Это делается с помощью этого метода расширения:
public static void ReturnsInOrder<T, TResult>(this ISetup<T, TResult> setup, params TResult[] results) where T : class
{
setup.Returns(new Queue<TResult>(results).Dequeue);
}
Теперь я хочу, чтобы один из вызовов вызвал исключение, в то время как другие что-то возвращают. Кто-нибудь делал это раньше?
Если я сделаю это
mock.Setup(m => m.SomeMethod())
.Throws(new Exception());
mock.Setup(m => m.SomeMethod())
.Returns("ok");
, тогда первая настройка перезаписывается и сохраняется только вторая настройка.