Unit testing 单元测试如何使用SmartGWT类?

Unit testing 单元测试如何使用SmartGWT类?,unit-testing,gwt,junit,smartgwt,jsni,Unit Testing,Gwt,Junit,Smartgwt,Jsni,在SmartGWT web应用程序中,我们将域对象从服务器传递到客户端,然后再传递回来(通过GWT序列化)。要以DynamicForm或GridList的形式在客户端显示/编辑数据,我们必须将其转换为(或),然后再编辑回域对象 我想为这个转换方法编写一个单元测试,但是在JUnit中一个简单的尝试失败了,因为记录和方法是由/(声明为native的静态方法)实现的,并且是由JSNI在JavaScript中实现的,因此只有在编译为JavaScript时才能在客户端使用 在JUnit中使用这些方法时,我

在SmartGWT web应用程序中,我们将域对象从服务器传递到客户端,然后再传递回来(通过GWT序列化)。要以DynamicForm或GridList的形式在客户端显示/编辑数据,我们必须将其转换为(或),然后再编辑回域对象

我想为这个转换方法编写一个单元测试,但是在JUnit中一个简单的尝试失败了,因为记录和方法是由/(声明为
native
的静态方法)实现的,并且是由JSNI在JavaScript中实现的,因此只有在编译为JavaScript时才能在客户端使用

在JUnit中使用这些方法时,我们得到了一个不满意的链接错误,因为本地方法没有在那里实现

有什么办法可以测试这些类吗?

这些关键方法可以通过一个简单的HashMap(或者如果属性顺序很重要的话,也可以是LinkedHashMap)轻松实现——实际上,如果只查看数据部分,而不是方法,JavaScript对象就是这样。因此,我只考虑使用Java实现而不是JavaScript实现提供一些选定SmartGWT类(主要是JSOHelper)的替代实现


但我真的是第一个有这个问题的人吗?我是不是太蠢了以至于找不到现有的解决方案?

如果您在代码中使用了MVP或MVC模式,只需用类似的东西模拟视图代码,然后测试应用程序的所有其余部分。要测试视图代码,您需要使用类似于我不认为gwtTestCase可以与smartGWT一起使用的东西,因为它只是js代码的gwt包装器。

相关(但在这里没有真正的帮助):我们使用的是MVP,但我想测试的这个类实际上是视图的一部分(或者可以这样认为)。它只涉及纯数据类(没有GUI),但涉及由JavaScript对象表示的数据类,这是这里的问题。也许你可以编写一个未解决的方法的java版本。是的,这是我的想法,但我希望其他人已经这么做了,因此,我在这里提出了一个问题。我写了一篇关于对smartGWT应用程序的客户端进行单元测试的博客,如果您想看一看(我使用的是selenium):