gwt测试实用程序:JSO修补程序不工作



我有一些JSNI代码想要进行单元测试,所以我决定使用gwt-test-utils的Patcher,但由于某些原因,它不起作用。。。

我已经跟踪并仔细检查了我的代码,但我无法使其工作。。我有一种感觉,我忘记了这是一件非常愚蠢的事情,有人能发现问题吗?

测试:

@GwtModule("com.my.app.gwt.client.view.MyView")
public class MyViewTest extends GwtTest {
private MyView mView;
@Before
public void setUp() {
    mView = new MyView(Mockito.mock(MyView.Binder.class));
}
@Test
public void shouldGetMyConfigAndParse() {
    MyConfig oMyConfig = mView.getMyConfig();
    System.out.println("########## oMyConfig=" + oMyConfig);
    assertTrue(true);
}
}

视图:

public class MyView extends ViewImpl implements MyPresenter.MyView {
interface Binder extends UiBinder<Widget, MyView> {
}
@UiField SimplePanel mMainPanel;
@Inject
public MyView(Binder pBinder) {
    initWidget(pBinder.createAndBindUi(this));
}
@Override
public void setInSlot(Object pSlot, IsWidget pContent) {
    if (pSlot == MyPresenter.SLOT_MAIN) mMainPanel.setWidget(pContent);
    else super.setInSlot(pSlot, pContent);
}
@Override
public MyConfig getMyConfig() {
    JSOMyConfig oJSOConfig = getJSOMyConfig();
    MyConfig oConfig = new MyConfig();
    oConfig.setAutoPlay(oJSOConfig.isAutoPlay());
    oConfig.setWidth(oJSOConfig.getWidth());
    oConfig.setHeight(oJSOConfig.getHeight());
    return oConfig;
}
private native JSOMyConfig getJSOMyConfig()/*-{
    return $wnd.myConfig;
}-*/;
}

JSO-

public class JSOMyConfig extends JavaScriptObject {
protected JSOMyConfig() { }
public native boolean isAutoPlay() /*-{ 
    return this.autoPlay;
}-*/;
public native String getWidth() /*-{ 
    return this.width;
}-*/;
public native String getHeight() /*-{ 
    return this.height;
}-*/;
}

JSOPatcher

@PatchClass(JSOMyConfig.class)
public class JSOMyConfigPatcher {
@PatchMethod
public static boolean isAutoPlay(JSOMyConfig JSOMyConfig) {
    return false;
}
@PatchMethod
public static String getWidth(JSOMyConfig JSOMyConfig) {
    return "500";
}
@PatchMethod
public static String getHeight(JSOMyConfig JSOMyConfig) {
    return "400";
}
}

META-INF/gw-test-utils.properties:

com.my.app.gwt.client.config.model.jso = scan-package
com.my.app.gwt.client.view.MyView = gwt-module

我错过什么了吗?

感谢您抽出时间:)

您修补了JSOMyConfig JSNI方法,但显然不是MyView.getJSOMyCnfig()方法。我说得对吗?

相关内容

  • 没有找到相关文章

最新更新