Integrazione GWT Mockito
-
22-07-2019 - |
Domanda
Sto provando a configurare e utilizzare Mockito in un progetto GWT e ho problemi a utilizzarlo sul lato client (in javascript). Ho provato ad aggiungere un modulo e includere Mockito, ma sembra non funzionare (molti errori). Ho anche provato a fare un checkout completo da svn e integrare GWT in questo modo, gli stessi errori. Come dovrebbe essere fatto? Grazie.
Soluzione
Il codice GWT testato con framework di simulazione (come Mockito) viene eseguito in JVM e ovviamente non viene compilato in JavaScript. Pertanto, qualsiasi implementazione relativa a JavaScript dovrebbe essere derisa o cancellata usando oggetti finti.
Un'architettura che riceve ampia adozione in GWT e che semplifica i test è MVP (variazione di MVC). MVP inserisce la maggior parte delle funzionalità significative all'interno di classi chiamate presentatori. I presentatori non fanno affidamento sulle classi di implementazione GWT ma dipendono invece dalle interfacce GWT (principalmente). Quindi Mockito viene applicato per deridere / stub quelle interfacce alle classi presentatore di unit test.
Questo blog è pieno di esempi sia su MVP in GWT che su test con oggetti finti (EasyMock).
Altri suggerimenti
E ora c'è https://github.com/google/gwtmockito che probabilmente è quello che hanno bisogno.
Senza ulteriori dettagli posso solo dire che i framework di derisione fanno un uso pesante di proxy dinamici e generazione di codice di runtime che non saranno compilati da GWT.
La tua scommessa migliore è usare queste beffe nei semplici test JUnit.