Я получаю объект 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");
то первая настройка будет перезаписана, и сохраняется только вторая настройка.