Mam prosty przypadek testowy:Mockito - drwiące zajęcia z metod natywnych
@Test
public void test() throws Exception{
TableElement table = mock(TableElement.class);
table.insertRow(0);
}
Gdzie TableElement jest klasa GWT metodą insertRow
zdefiniowane jako:
public final native TableRowElement insertRow(int index);
Kiedy rozpocząć badanie Dostaję:
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)
Co, jak sądzę, jest związane z rodzajem metody insertRow. Czy jest jakiś sposób obejścia takich metod z Mockito?
Niestety nie mam kontroli nad 'klasy TableElement' - należy ona do zewnętrznej biblioteki. Jednak rozszerzenie API Powermock Mockito wygląda bardzo interesująco, sprawdzę to. –
Po zawinięciu cudzej rzeczy ** masz ** kontrolę. :-) To jest piękno owijaczy, [adapterów] (http://en.wikipedia.org/wiki/Adapter_pattern) lub [fasad] (http://en.wikipedia.org/wiki/Facade_pattern). – Spoike
Bardzo dziękuję za bardzo dobrą i szczegółową odpowiedź. Zawijanie zadziała, a ja mogę go użyć w ostateczności, ale na mój gust zbyt wiele się kusi i komplikuje kod produkcyjny tylko do celów testowych :(. –