Algunas veces las pruebas tienen efectos secundarios. Por ejemplo, supongamos que estamos comprobando la siguiente clase:
clase pública A {
static int cnt = 0;
public int incrementAndReturn () {
cnt ++;
return cnt;
}
}
Y hemos escrito las siguientes pruebas:
- ¿Qué agrega Docker a simplemente LXC?
- Cómo reclamar que su software funciona y que no habrá regresiones si no tiene pruebas automatizadas
- ¿Cómo puedo ingresar a la gestión de productos cuando tengo 3 años de experiencia en la industria como desarrollo de software? ¿Quiero saber los conceptos básicos / cursos / certificaciones que tendré que hacer para al menos unirme como Gerente de Producto Asociado?
- ¿Qué cursos de certificación debo hacer?
- Quiero abrir una empresa de desarrollo de software. Tengo 18 años, estoy a punto de graduarme de HS, y casi no tengo experiencia en programación. ¿Qué debo hacer? ¿Puedo hacerlo?
ATEST de clase pública {
@Prueba
public void testIncrementOnce () {
A a = nuevo A ();
int resultado = a.incrementAndReturn ();
ClaimEquals (1, resultado);
}
@Prueba
public void testIncrementTwice () {
A a = nuevo A ();
a.incrementAndReturn ();
int resultado = a.incrementAndReturn ();
ClaimEquals (2, resultado);
}
}
Entonces, cada prueba aislada será correcta, pero cuando se ejecutan juntas, el valor de cnt será diferente de cero para la segunda prueba (dado que es una variable estática, solo se inicializa una vez).
Otros casos incluyen operaciones de E / S. Por ejemplo, dos (o más) pruebas pueden suponer que un archivo no existe y que lo crean. Luego, cuando se ejecutan juntos, la suposición de la segunda prueba fallará.