Estoy tratando de aprender a escribir pruebas. También estoy aprendiendo Java, me dijeron que debería aprender/uso jMock/práctica, he encontrado algunos artículos en línea que ayuda a extender determinado como:Cómo comenzar a probar (jMock)
http://www.theserverside.com/news/1365050/Using-JMock-in-Test-Driven-Development
http://jeantessier.com/SoftwareEngineering/Mocking.html#jMock
Y la mayoría de los artículos Descubrí que se trata de desarrollo impulsado por pruebas, escribir pruebas primero y luego escribir el código para que pase la prueba. No estoy buscando eso en este momento, estoy tratando de escribir pruebas para el código ya existente con jMock.
El official documentation es vago, por decir lo menos, y demasiado duro para mí. ¿Alguien tiene una mejor manera de aprender esto? Los buenos libros/enlaces/tutoriales me ayudarían mucho. gracias
EDITAR - pregunta más concreta:
http://jeantessier.com/SoftwareEngineering/Mocking.html#jMock - de este artículo
probado este para burlarse de esta clase simple:
import java.util.Map;
public class Cache {
private Map<Integer, String> underlyingStorage;
public Cache(Map<Integer, String> underlyingStorage) {
this.underlyingStorage = underlyingStorage;
}
public String get(int key) {
return underlyingStorage.get(key);
}
public void add(int key, String value) {
underlyingStorage.put(key, value);
}
public void remove(int key) {
underlyingStorage.remove(key);
}
public int size() {
return underlyingStorage.size();
}
public void clear() {
underlyingStorage.clear();
}
}
Así es como he tratado de crear una prueba/simulacro:
public class CacheTest extends TestCase {
private Mockery context;
private Map mockMap;
private Cache cache;
@Override
@Before
public void setUp() {
context = new Mockery() {
{
setImposteriser(ClassImposteriser.INSTANCE);
}
};
mockMap = context.mock(Map.class);
cache = new Cache(mockMap);
}
public void testCache() {
context.checking(new Expectations() {{
atLeast(1).of(mockMap).size();
will(returnValue(int.class));
}});
}
}
Pasa la prueba y, básicamente, no hace nada, lo que quería es crear un mapa y comprobar su tamaño, y usted sabe trabajar algunas variaciones para tratar de entender esto. Comprender mejor a través de ejemplos, qué más podría probar aquí o cualquier otro ejercicio me ayudaría mucho. tnx
No es una respuesta pero: recomendaría aprender a escribir pruebas antes de mirar en los simulacros. Los simulacros son un tema avanzado en las pruebas, primero debe dominar los conceptos básicos. – Arne
@Arne ¿Puede darme una respuesta concreta sobre lo que se considera básico? Soy un aprendiz rápido, sin decir que soy más inteligente que otras personas, estoy ansioso por aprender y tengo mucho tiempo libre. Entonces, si una cosa se vuelve aburrida, puedo pasar a la otra simple/avanzada que realmente no importa. tnx – London
Puede escribir sus pruebas sin un marco de burla. Solo usa JUnit para escribir tus pruebas. Si está probando su código con fluidez y luego se encuentra con un caso que no puede dominar sin un simulacro, intente con un marco burlón. La necesidad de un simulacro debería ser la excepción, no la regla. – Arne