【发布时间】:2009-08-24 22:07:11
【问题描述】:
我可以在没有 GWTTestCase 的情况下测试我的客户端 GWT 代码吗?我在某处听说过(我认为这是 Google IO 2009 会议之一),他们成功地在 JVM 中使用假 DOM 测试了他们的代码,而不是在带有 DOM 的 Javascript 中。那将是辉煌的。这样做的目的是提高速度(数量级)。有人知道如何做到这一点吗?我关于堆栈溢出的第一个问题,希望我做对了。 谢谢。 欧根。
【问题讨论】:
我可以在没有 GWTTestCase 的情况下测试我的客户端 GWT 代码吗?我在某处听说过(我认为这是 Google IO 2009 会议之一),他们成功地在 JVM 中使用假 DOM 测试了他们的代码,而不是在带有 DOM 的 Javascript 中。那将是辉煌的。这样做的目的是提高速度(数量级)。有人知道如何做到这一点吗?我关于堆栈溢出的第一个问题,希望我做对了。 谢谢。 欧根。
【问题讨论】:
您应该查看 Ray Ryan 的 Google I/O session。
基本上,您可以使用模型/视图/演示者模式并将所有 DOM 访问代码抽象到“视图”部分。通过这样做,您可以创建一个模拟视图并使用标准的 junit 测试来测试模型/演示器,通过 jvm 运行,而无需浏览器或 DOM
【讨论】:
不是您想要的,但您应该使用模型-视图-演示者模式。任何需要 DOM 的代码都应该放在您的 View 类中,并且应该尽可能地笨拙。您的 Presenter 类中有复杂的逻辑。然后,您可以在不需要 GWTTestCase 的情况下测试您的演示者类。
例如,一个视图可能有这样的方法:
void setResponseText(String text);
您的演示者测试用例可能类似于:
void testSayHi() {
expect(mockView.setResponseText("hi there"));
replayMocks();
presenter.sayHi();
verifyMocks();
}
【讨论】: