我一直在使用 GWT MVP 框架 + GWT Editors 框架处理一些小项目。我有视图接口,其字段声明如下:
@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
从 Activity 调用 Views 组件方法而不进行强制转换的最佳实践是什么?