Al probar las clases de singleton, necesitamos que la única instancia se "apague" después de cada prueba. ¿Hay alguna manera de configurar nunit para recrear el dominio de la aplicación de prueba después de cada prueba, o al menos después de cada dispositivo?Se puede configurar nunit para eliminar el dominio de la aplicación por dispositivo (o por prueba)
Se puede configurar nunit para eliminar el dominio de la aplicación por dispositivo (o por prueba)
Respuesta
Creo que me falta algo aquí Ralph. Solo para mi propio beneficio, ¿puede explicar por qué agregar métodos con los siguientes atributos a su clase de prueba que caen y recrean sus instancias no funcionaría para usted?
Agregar estos atributos para los métodos debe hacerlos ejecutar antes/después de cada prueba.
[SETUP]
[TearDown]
La incorporación de estos atributos para métodos deberían hacerlos correr antes/después de la fijación.
[TestFixtureSetUp]
[TestFixtureTearDown]
¿Existe una razón por la cual el uso de métodos con estos atributos no se puede crear y destruir su dominio entre las pruebas?
Puede proporcionar los medios para renovar la instancia de singleton cuando se prueba a través de un método condicional.
// CUT
public sealed class Singleton{
private static Singleton _instance = new Singleton();
private Singleton()
{
// construct.
}
public static Singleton Instance{
get{
return _instance;
}
}
[Conditional ("DEBUG")]
public static void FreshInstance(){
_instance = new Singleton();
}
}
// NUnit
[TestFixture]
public class SingletonTests{
[SetUp]
public void SetUp(){
Singleton.FreshInstance();
}
}
que tenía que hacer el exactamente lo mismo, por lo que creó una biblioteca que básicamente toma la prueba actual y vuelve a ejecutar en un nuevo dominio de aplicación. Es un paquete nuget llamado NUnit.ApplicationDomain y es open source.
Ejemplo de código:
[Test, RunInApplicationDomain]
public void Method()
{
Console.WriteLine("I'm in a different AppDomain")
}
- 1. Cómo configurar AutoMapper una vez por dominio de aplicación
- 2. ¿Cuál es el alcance del hilo del finalizador, por dominio de aplicación o por proceso?
- 3. ¿Se puede configurar ClickOnce para eliminar directorios antiguos publicados?
- 4. dispositivo virtual no se puede eliminar
- 5. NUnit: Dispositivo de configuración global no utilizado cuando el dispositivo para ejecutar se especifica en la línea de comando
- 6. especifique la prueba NUnit para ejecutar
- 7. No se puede iniciar la aplicación en el dispositivo
- 8. ¿Cuál es la secuencia seguida por el kernel de Linux para configurar un dispositivo?
- 9. Determinando el caso de prueba que se está ejecutando actualmente por Nunit
- 10. ¿NUnit crea ahora una nueva instancia de la clase de dispositivo de prueba para cada método de prueba contenido?
- 11. Iniciar aplicación personalizada con URL por dominio
- 12. Función CUDA activable por el dispositivo o el host
- 13. No se puede eliminar el dispositivo/dev/loop0
- 14. ¿Enlazar o configurar SLF4J alternativo para la prueba unitaria?
- 15. Eliminar la referencia de NUnit para la versión de lanzamiento
- 16. Android - Conservar o eliminar archivos creados por la aplicación en la desinstalación
- 17. Obtención de nUnit categorías seleccionadas por programación
- 18. ¿Cómo se puede combinar el diseño impulsado por dominio con la programación orientada a aspectos?
- 19. Configurar log4net RollingFileAppender en el código que se ejecuta una vez por inicio de la aplicación
- 20. La aplicación no se iniciará en el dispositivo o el simulador
- 21. ¿Es NUnit una mala elección para la prueba de selenio?
- 22. System.BadImageFormatException causado por el proyecto NUnit
- 23. ¿por qué eclipse no puede detectar el dispositivo Android?
- 24. Rails + SSL: ¿Por controlador o por toda la aplicación?
- 25. ¿Es posible tener una sola prueba por dispositivo?
- 26. android: dispositivo no compatible con la aplicación, ¿por qué?
- 27. Como prueba de NUnit por la existencia de atributos de un método
- 28. ¿Se puede configurar Apache BalancerMember para usar sockets de dominio de Unix?
- 29. CÓMO eliminar tokens de dispositivo recibidos por Apple APNS retroalimentación
- 30. No se puede eliminar o detener AVPlayer
Si la configuración del Singleton es tan complejo que necesita ser probado cada vez que se llame, se puede reprimir la lógica de la creación en un método y luego probar ese método en su lugar? – roufamatic