Ваш метод - , возвращающий исключение, а не , выдающий исключение.ExpectedExceptionAttribute
ожидает, что ваш метод вызовет необработанное исключение.Эта строка:
return ex;
возвращает исключение.Вместо этого просто замените его на
throw;
или полностью удалите попытку / поймать, так как ловить и ничего не делать, кроме отбрасывания, это то же самое, что не ловить его в первую очередь.
I 'Также спросите, имеет ли смысл возвращать функцию Exception
.
public static Exception ExecuteSQL(List<int> walletList, string command)
Это действительно то, что вы хотите, или он должен вернуть результат выполнения запроса?Функция должна возвращать то, что вы ожидаете получить , возможно, в этом случае значение из запроса или ответ, указывающий, что он был выполнен.Вам не нужно возвращать исключение.Если его бросают, он автоматически попадает в вызывающий метод.Этот метод может обрабатывать его, а если нет, то всплывает до следующего метода и т. Д.
Это также объясняет ошибку, которую вы получаете, если вы измените тест для утверждения равенства.Независимо от того, какое возвращаемое значение вы ожидаете, вы проверяете, равно ли оно Exception
.