Tôi có trường hợp thử nghiệm đơn giản:Mockito - chế giễu các lớp học với phương pháp tự nhiên
@Test
public void test() throws Exception{
TableElement table = mock(TableElement.class);
table.insertRow(0);
}
đâu TableElement là GWT lớp học với phương pháp insertRow
định nghĩa là:
public final native TableRowElement insertRow(int index);
Khi tôi khởi động thử nghiệm tôi nhận được:
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)
Như tôi tin là có liên quan với phương thức insertRow là gốc. Có cách nào hay cách nào khác để giả lập các phương pháp như vậy với Mockito?
Đáng tiếc là tôi đã không kiểm soát lớp 'TableElement' - nó thuộc về thư viện bên ngoài. Tuy nhiên, phần mở rộng API Powermock Mockito trông rất thú vị, tôi sẽ kiểm tra nó. –
Khi bạn quấn đồ của người khác thì ** bạn ** có quyền kiểm soát. :-) Đó là vẻ đẹp của hàm bao, [adapter] (http://en.wikipedia.org/wiki/Adapter_pattern), hoặc [façades] (http://en.wikipedia.org/wiki/Facade_pattern). – Spoike
Cảm ơn rất nhiều câu trả lời rất tốt và chi tiết. Bao bì sẽ hoạt động và tôi có thể sử dụng nó như một phương sách cuối cùng nhưng đối với khẩu vị của tôi, nó quá khắt khe và làm phức tạp mã sản xuất chỉ cho các mục đích thử nghiệm: ( –