1

试图弄清楚GWTTestCase套件/方法的状态是什么。

我读过一些说这GWTTestCase有点过时的东西。如果这是真的,那么客户端测试的首选方法是什么?

还有,虽然我自己没试过,但是这里有人说他试过了,跑一次测试要几秒甚至几十秒;这是真的?(即,使用 GWTTestCase 运行测试通常需要数十秒,还是我们这边更可能是配置错误等)

您是否使用任何其他对您有效的 GWT 客户端测试方法?

4

1 回答 1

2

问题是任何 GWT 代码都必须经过编译才能在浏览器中运行。如果您的代码只是 Java,您可以在典型的 JUnit 或 TestNG 测试中运行,它会像您期望的那样立即运行。

但是考虑到必须将 JUnit 测试编译为 .class,并从测试运行程序在 JVM 中运行main()——尽管您通常不会直接调用它,只需从构建工具或 IDE 启动它即可。同样,您的 GWT/Java 代码必须编译成 JavaScript,然后在某种浏览器中运行。

编译是需要时间的——对于一个最小的测试,只在一个浏览器中运行(即一个排列),这在大多数机器上至少需要 10 秒(GWTTestCase 的主机页面允许 JVM 告诉它要运行哪个测试,并获取结果或堆栈跟踪或超时)。然后添加项目的测试组件编译需要多长时间,您应该对测试用例需要多长时间有一个很好的了解。

您可以采取一些措施来最大限度地减少所用时间,但如果您需要在浏览器中运行,10 秒几乎是最低限度。

  • 使用测试套件——这些告诉编译器继续做一个更大的模块来运行所有的测试。缺点:如果你对你的模块做了任何聪明的事情,将它们组合成一个可能会产生其他后果。
  • 使用 JVM 测试 - 如果您只是测试演示者,并且演示者是纯 Java(带有模拟视频),那么不要为了测试其逻辑而在浏览器中运行代码。如果您担心差异,请考虑测试的目的是确保编译器正常工作,还是执行逻辑。
于 2017-06-09T02:21:00.527 回答