I have a class which uses JSNI to retrieve JSON data stored in the host page:
protected native JsArray<JsonModel> getModels() /*-{
return $wnd.jsonData;
}-*/;
This method is called, and the data is then translated and process in a different method. How should I unit test this class, since I'm not able to instantiate (or seemingly mock?) JsArray?
What is the best way to unit test JSNI methods at all?
The interface approach is the best approach, and not necessarily an overkill. As to the problem of actually testing the method - well, if it is just reading from $wnd.jsonData, there isn't any merit in testing the method. You are better off writing a server side test that confirms you have the right data in the host page.
If you really have some logic in a native method, you are better off writing a selenium/jsunit test case.