我是Google Web Toolkit(GWT)的概念的新手,据我所知,它可以告诉它一个允许您编写客户端代码的Java API和工具集在Java中,并且在某些时候(作为构建的一部分或动态地作为HttpRequests进入),它从您的Java代码生成客户端JS(如果我错了任何一个,请纠正我!)。
假设我或多或少是正确的,我想知道你是如何对它进行单元测试的!您是否为Java代码编写JUnit测试,还是为结果/生成的JavaScript编写JSUnit测试?如果您使用JSUnit,那么您如何知道生成的函数的名称和内部工作原理,因为GWT会优化并缩小它输出的所有内容?提前谢谢!
答案 0 :(得分:1)
看看这里:https://developers.google.com/web-toolkit/doc/latest/DevGuideTesting
基本上,你一直在使用JUnit:尽可能使用纯Java,否则GWTTestCase
(在Java -HTMLUnit中的模拟浏览器中运行 - 或在真实浏览器中运行,在DevMode中或编译为JS) -aka prod mode - ),最后是Selenium / WebDriver的集成/验收测试。
答案 1 :(得分:1)
首先,你是对的:GWT从你的客户端Java代码生成Javascript代码。然而,为了速度,我们在仍然使用Java时测试我们所能做的一切。
您编写的标准JUnit测试是从JUnit的TestCase
或GWTTestCase
扩展而来的。
两者的主要区别如下:
对于使用任何类型的本机javascript代码的每个类,都使用GWTTestCase
(小部件和图形元素就是这样)。编译器将使用“无头”浏览器将这些测试作为javascript代码进行测试,因此与标准JUnit TestCase
相比,这些测试非常慢。
这就是为什么你将标准TestCase用于其他所有东西(因为它运行为字节码要快得多),这就是为什么使用MVP模式来分离你的视图(代码可以用GWTTestCase
进行测试)的好主意您的程序的其余部分(您可以使用TestCase
进行测试的代码)。