Sto cercando di imparare a scrivere i test. Sto anche imparando Java, mi è stato detto che dovrei imparare/uso/pratica jMock, ho trovato alcuni articoli on-line che aiutano a certa misura come:Come iniziare con il test (jMock)
http://www.theserverside.com/news/1365050/Using-JMock-in-Test-Driven-Development
http://jeantessier.com/SoftwareEngineering/Mocking.html#jMock
E la maggior parte articoli Ho scoperto che avevo a che fare con lo sviluppo basato su test, scrivere prima i test e poi scrivere il codice per far passare il test. Al momento non lo sto cercando, sto provando a scrivere test per codice già esistente con jMock.
Il official documentation è vaga a dir poco e troppo difficile per me. Qualcuno ha modo migliore per imparare questo. Buoni libri/link/tutorial mi aiuterebbero molto. grazie
EDIT - Ancora una domanda concreta:
http://jeantessier.com/SoftwareEngineering/Mocking.html#jMock - da questo articolo
provato questo per deridere questa semplice classe:
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();
}
}
Ecco come ho cercato di creare un test/finto:
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));
}});
}
}
supera la prova e in fondo non fa nulla, quello che volevo è quello di creare una mappa e controllare la sua dimensione, e non si sa lavorare alcune variazioni cercano di ottenere una presa su questo. Capire meglio attraverso gli esempi, cos'altro posso testare qui o altri esercizi mi aiuterebbe molto. tnx
Non una risposta, ma: consiglierei di imparare a scrivere i test prima di esaminare i mock. I mock sono un argomento avanzato nei test, devi prima padroneggiare le basi. – Arne
@Arne puoi darmi una risposta concreta a quelle che sono considerate le basi? Sono uno studente veloce, non sto dicendo che sono più intelligente delle altre persone, sono solo impaziente di imparare e ho molto tempo a disposizione. Quindi, se una cosa diventa noiosa, posso passare all'altro semplice/avanzato non importa. tnx – London
Puoi scrivere i tuoi test senza una cornice di derisione. Basta usare JUnit per scrivere i tuoi test. Se stai testando il tuo codice fluentemente e poi incontri un caso che non puoi padroneggiare senza un finto, prova un quadro di derisione. L'esigenza di una simulazione dovrebbe essere l'eccezione, non la regola. – Arne