¿Cómo puedo probar una excepción esperada con un mensaje de excepción específico de un archivo de recursos en Visual Studio Test?

Visual Studio Test puede verificar las excepciones esperadas usando el atributo ExpectedException. Puedes pasar una excepción como esta:

[TestMethod]
[ExpectedException(typeof(CriticalException))]
public void GetOrganisation_MultipleOrganisations_ThrowsException()

También puede verificar el mensaje contenido dentro de la ExpectedException así:

[TestMethod]
[ExpectedException(typeof(CriticalException), "An error occured")]
public void GetOrganisation_MultipleOrganisations_ThrowsException()

Pero al probar las aplicaciones I18N, usaría un archivo de recursos para obtener ese mensaje de error (cualquiera puede incluso decidir probar las diferentes localizaciones del mensaje de error si lo deseo, pero Visual Studio no me deja hacer esto:

[TestMethod]
[ExpectedException(typeof(CriticalException), MyRes.MultipleOrganisationsNotAllowed)]
public void GetOrganisation_MultipleOrganisations_ThrowsException()

El compilador dará el siguiente error:

Un argumento de atributo debe ser una expresión constante, tipo de expresión o expresión de creación de matriz de un atributo

¿Alguien sabe cómo probar una excepción que tiene un mensaje de un archivo de recursos?

Una opción que he considerado es usar clases de excepción personalizadas, pero basadas en consejos escuchados a menudo como:

"Cree y lance excepciones personalizadas si tiene una condición de error que se puede manejar mediante programación de una manera diferente a cualquier otra excepción existente. De lo contrario, lance una de las excepciones existentes".Fuente

No espero manejar las excepciones de manera diferente en el flujo normal (es una excepción crítica, así que de todas formas estoy entrando en modo de pánico) y no creo que crear una excepción para cada caso de prueba sea lo correcto. ¿Alguna opinión?

Respuestas a la pregunta(7)

Su respuesta a la pregunta