无法在gwtmockito内调试GWT本机代码

无法在gwtmockito内调试GWT本机代码,gwt,gwtmockito,Gwt,Gwtmockito,我有一个GwtMockitoTestCase,调试器似乎没有进入任何普通的GWT类,比如Widget、ResizeLayoutPanel等。 但是,当在DevMode内运行相同的代码时,调试器会正确地执行该代码 这与运行在JRE中的GWT有关吗?如果不是,我的类路径可能是错误的吗?或者gwt用户jar没有调试信息 我还尝试扩展GWT类: ResizeLayoutPanel w = new ResizeLayoutPanel() { @Override public

我有一个GwtMockitoTestCase,调试器似乎没有进入任何普通的GWT类,比如Widget、ResizeLayoutPanel等。 但是,当在DevMode内运行相同的代码时,调试器会正确地执行该代码

这与运行在JRE中的GWT有关吗?如果不是,我的类路径可能是错误的吗?或者gwt用户jar没有调试信息

我还尝试扩展GWT类:

ResizeLayoutPanel w = new ResizeLayoutPanel() {
        @Override
        public void setWidget(Widget pW) {
            super.setWidget(pW); (1)
        }
    };
第(1)行上的断点正在工作,但按F5键时,它不会进入ResizeLayoutPanel的setWidget方法


谢谢大家!

在挖掘GwtMockito代码之后,似乎有一组特定的类被存根,一些方法的主体被删除。因此,不可能调试这些方法

剩下的问题是,GWTMockito以某种方式破坏了代码覆盖率工具(EclEmma),该工具显示的代码覆盖率低于预期。我在上贴了一个关于这个主题的单独问题:

一些技术背景:

GwtMockitoClassLoader完全保留了GWT中的一些类,请检查GwtMockitoTestRunner#getClasseStoub(),其中包括Widget和ResizeLayoutPanel类


存根过程将完全删除返回原语值或void的方法的主体,请参见GwtMockitoClassLoader#onLoad。如果返回的是一个JavaBean,它将为它返回一个模拟版本。

这就是gwtmockito的要点,对吗?它正在“解除”JSNI代码,这样就可以在普通JUnit测试中运行。你不必既吃蛋糕又吃它;)如果要测试小部件的内部,请使用
gwtsetcase
;如果要检查这些小部件之间的交互,请使用mock。