Хорошо, я создал тестовый метод, у которого в качестве параметра было исключение, и вызвал его, используя moq описанным выше способом, и он работал нормально. Так что, по-видимому, нет проблемы с передачей исключения как параметра как такового.
Я также изменил первый параметр со значения перечисления на перечисление It.IsAny. Так с
myMock.Expect(w =>
w.MyMethod(**MyEnum.Value**,
It.IsAny<string>(),
It.IsAny<string>(),
It.IsAny<System.Exception>(),
null))
.Returns(myResult);
до
myMock.Expect(w =>
w.MyMethod(**It.IsAny<MyEnum>()**,
It.IsAny<string>(),
It.IsAny<string>(),
It.IsAny<System.Exception>(),
null))
.Returns(myResult);
и результат, который я получил, был:
IMyClass l =>
l.MyMethod(IsAny<MyEnum>(),
IsAny<MyEnum>(),
IsAny<MyEnum>(),
IsAny<MyEnum>(),
null)
Похоже, что он берет тип первого параметра и по какой-то причине применяет его ко всем остальным .....