Voglio testare la classe con make db connection. La classe che voglio testare accetta come parametro nella classe Connection
del costruttore. Voglio passare l'oggetto mock al costruttore. Puoi dirmi un buon framework con esempio come simulare la connessione db?Connessione al database simulato Java
risposta
È possibile utilizzare MockRunner, che supporta JDBC. Anche i framework di derisione generici come Mockito funzioneranno, ma JDBC è un insieme di interfacce che si restituiscono a vicenda in modo che la padronanza delle mani sia difficile. Guardate voi stessi: How to stub/mock JDBC ResultSet to work both with Java 5 and 6?
Tuttavia beffardo JDBC è così fragile e verbose (non importa quali strumenti si utilizzano) che vorrei suggerire sia astrarre l'accesso JDBC all'interno di qualche strato DAO sottile (vedi @duffymo risposta) o andare per a - database di memoria come H2.
Consulta anche:
http://mockrunner.github.io/dice nel sito che ospita la versione aggiornata pvi :) –
puoi provare a easymock. è facile da usare, penso. puoi trovare un tutorial di riferimento. easymock
non vorrei creare una connessione finto - non prova nulla, a mio parere.
Posso capire perché si dovrebbe prendere in giro il repository/DAO stesso dopo averlo testato completamente con una connessione attiva. Daresti il repository/DAO finto a un servizio o ad un altro client perché lo hai già testato, non c'è bisogno di provare che funzioni finché non esegui un test di integrazione.
Se si sta riutilizzando tale simulazione in molti casi di test, è anche possibile prendere in considerazione l'implementazione della propria implementazione della connessione e riutilizzarla ovunque.
È possibile utilizzare un quadro beffardo come quelli menzionati nella risposta di cui sopra (io personalmente uso EasyMock) O Creare Possiedi un oggetto fittizio:
class FakeConnection extends Connection{
// Overrive all method behavious you want to fake.
}
quadro Accolito è utile per tali scopi ->https://github.com/cchantep/acolyte.
Con questa libreria è possibile creare un'istanza di connessione per la quale si fornisce il gestore. Implementando il gestore, si è in grado di "inviare" query o aggiornamenti: produzione di gruppi di risultati o conteggio degli aggiornamenti (o avviso).
- 1. Java + Tomcat, connessione al database Dying?
- 2. Riapri connessione al database in Java
- 3. Connessione al database eterogeneo
- 4. Connessione al database Python Chiudi
- 5. Connessione al database utilizzando SQLAlchemy
- 6. Connessione dinamica al database symfony2
- 7. Variabile globale - connessione al database?
- 8. la connessione al database Perl
- 9. Android - Connessione al database MySQL
- 10. Connessione al database su Heroku
- 11. Connessione PDQ MySql al database
- 12. Rintracciare connessione al database emette
- 13. Java - problemi di connessione al database MySQL online utilizzando JDBC
- 14. Java usa SSL per la connessione al database
- 15. Priorità della connessione al database PHP/MySQL?
- 16. Perché chiudere sempre la connessione al database?
- 17. Zend Framework 2 - Connessione al database
- 18. Connessione al database MySQL con RMySQL
- 19. Connessione al database tramite Hibernate in servlet
- 20. Connessione al database Oracle con C++
- 21. Django errore di connessione al database
- 22. tenere aperta una connessione al database MongoDB
- 23. (datagrip) Connessione al database con più schemi
- 24. Cakephp Come modificare la connessione al database
- 25. SocketTimeoutException durante la connessione al database locale
- 26. connessione al database Oracle in web.config asp.net
- 27. Connessione al database SQL esterno in C#
- 28. Informazioni sulla stringa di connessione al database
- 29. Cambia ruolo dopo la connessione al database
- 30. report Crystal - chiudere la connessione al database
Potresti essere interessato a questa risorsa: http://programmers.stackexchange.com/questions/118933/what-elements-of-my-junits-should-i-mock –