GWTTestCase已经过时了吗?还有更好的选择吗?

时间:2017-06-07 14:54:15

标签: gwt gwttestcase

试图找出GWTTestCase套件/方法的状态。

我读过一些说GWTTestCase已经过时的事了。如果这是真的,那么客户端测试的首选方法是什么?

另外,虽然我自己没有尝试过,但是有人说他试过了,并且需要几秒或几十秒才能进行一次测试;这是真的? (即,使用GWTTestCase运行测试需要花费数十秒的时间,或者更有可能是我们身边的配置错误等)

您是否使用任何其他方法进行适合您的GWT客户端测试?

1 个答案:

答案 0 :(得分:2)

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

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

编译是需要时间的 - 对于仅在一个浏览器中运行的最小测试(即一个排列),在大多数机器上将花费至少10秒(GWTTestCase的主机页面允许JVM)告诉它运行哪个测试,并获得结果或堆栈跟踪或超时)。然后添加项目的测试组件需要多长时间来编译,并且您应该知道该测试用例需要多长时间。

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

  • 使用测试套件 - 这些告诉编译器继续编写一个更大的模块来运行所有测试。缺点:如果您对模块做了任何聪明的事情,将它们加入一个可能还有其他后果。
  • 使用JVM测试 - 如果您只是测试演示者,并且演示者是纯Java(使用模拟视频),那么请不要在浏览器中运行代码以测试其逻辑。如果您担心差异,请考虑测试的目的是确保编译器工作,还是运用逻辑。