Похоже, вы (или должны) пытаться проверить, будет ли ваш метод вызываться при каждом возникновении исключения.В этом случае ваш подход ошибочен: ваш модульный тест не должен спрашивать, какое исключение произошло.Это должно быть повышение каждого интересующего вас исключения и проверка, был ли вызван метод.(Итак, не используйте assertRaises
: это не вызывает исключения, оно ожидает, что его аргумент сделает это).
Как это проверить?НЕ пытаясь заглянуть внутрь метода.Если целью вашего метода является выполнение чего-то вроде записи в журнал при возникновении исключения, вызовите исключение и проверьте, правильно ли была сделана запись в журнале.
Если действия вашего метода («побочные эффекты»)) трудно обнаружить в тесте, вы должны заменить его методом «фиктивного»: это метод, который заменяет собой реальную вещь, но его задача состоит в том, чтобы помочь инфраструктуре тестирования обеспечить правильность его вызова.Посмотрите это в вашей тестовой среде.