ho semplice caso di test:Mockito - classi beffardi con metodi nativi
@Test
public void test() throws Exception{
TableElement table = mock(TableElement.class);
table.insertRow(0);
}
Dove TableElement è di classe GWT con metodo insertRow
definito come:
public final native TableRowElement insertRow(int index);
Quando lancio di prova sto ottenendo:
java.lang.UnsatisfiedLinkError: com.google.gwt.dom.client.TableElement.insertRow(I)Lcom/google/gwt/dom/client/TableRowElement;
at com.google.gwt.dom.client.TableElement.insertRow(Native Method)
Quali come credo è in relazione con il metodo insertRow essendo nativo. C'è qualche modo o soluzione per deridere tali metodi con Mockito?
purtroppo non ho alcun controllo sulla classe 'TableElement' - appartiene alla libreria esterna. Tuttavia l'estensione dell'API Powermock Mockito sembra molto interessante, lo controllerò. –
Quando avvolgi le cose di qualcun altro, allora ** tu hai il controllo. :-) Questa è la bellezza dei wrapper, [adattatori] (http://en.wikipedia.org/wiki/Adapter_pattern), o [façades] (http://en.wikipedia.org/wiki/Facade_pattern). – Spoike
Grazie mille per la risposta molto buona e dettagliata. Il wrapping funzionerà e potrei utilizzarlo come ultima risorsa, ma per i miei gusti è troppo sporgente e complicato il codice di produzione solo a scopo di test :(. –