Я работал над некоторыми небольшими проектами, используя фреймворк GWT MVP + фреймворк GWT Editors. У меня есть интерфейсы Views с полями, объявленными как:
@Path("field")
IsEditor<ValueBoxEditor<Long>> getField();
Реализации представлений выглядят так:
@UiField
IsEditor<ValueBoxEditor<Long>> field;
public IsEditor<ValueBoxEditor<Long>> getField(){
return field;
}
В моих действиях у меня есть ссылки на соответствующие представления, и когда мне нужно сделать (в действии) что-то вроде этого:
view.getField.setEnable(true);
я должен сделать приведение к
((ValueBoxBase<Long>)view.getField()).setEnable(true);
После этого я не могу протестировать этот модуль, потому что в своем тесте я определяю поведение View для возврата Mock (IsEditor<ValueBoxEditor<Long>>)
на view.getFiled()
, в результате я получаю:
java.lang.ClassCastException: com.google.gwt.editor.client.IsEditor$
$EnhancerByMockitoWithCGLIB$$e8c00c36 cannot be cast to
com.google.gwt.user.client.ui.ValueBoxBase
Как лучше всего вызывать методы компонентов Views из Activity без приведения?