gwt 测试
GWT是Google开发的框架,用于使用Java编程语言构建支持AJAX的Web应用程序。 它包括:
- 用于创建GUI的API(类似于Swing),用于处理Web浏览器的文档对象模型(DOM)。
- Java到JavaScript的编译器。
- 用于运行和调试GWT应用程序的环境。
这种方法具有一些优点:
- 假设您了解Java,则无需学习新的编程语言。
- 您可以构建支持AJAX的Web应用程序,而无需编写JavaScript或HTML。
- 一切都是用Java编写的,因此可以使用Java的高级开发工具,包括调试和重构支持。
- GWT使开发人员免受浏览器特性的影响
最后,由于所有内容都在Java中(甚至MVC模式的View部分),我们应该能够轻松创建UI测试。 本文探讨了一些方法。
1.第一次尝试
1.1使用TDD的 GWT
我们将从一个简单的示例开始:我们要显示一个文本输入字段,一个按钮和一个标签。 当我们单击按钮时,用户输入的文本字段内容将放置在标签中。 相应的测试(在JUnit 4中 )将是:
1 @Test
2public void testClick () {
3 GwtExample view = new GwtExample();
4 Assert . assertNull (view. getLabel (). getText());
5 view. getTextBox().setText ("my text");
6 // creation of a basic "click" event
7 NativeEvent event = Document. get().createClickEvent (0, 0, 0, 0, 0, false, false, false, false); // dispatch de l'évènement DomEvent.fireNativeEvent(event, view.getButton());
8 Assert . assertEquals ("my text", view. getLabel().getText());
9 }
然后,我们可以编写相应的View代码:
1public class GwtExample extends Composite {
2 private Label label;
3 private TextBox textBox;
4 private Button button;
5
6 public GwtExample() {
7 FlowPanel fp = new FlowPanel();
8 textBox = new TextBox();
9 fp.add(textBox);
10 button = new Button (" validate ");
11 fp.add(button);
12 button.addClickHandler( new ClickHandler() {
13
14 public void onClick(ClickEvent event) {
15 label.setText(textBox.getText());
16
17 }
18 });
19 label = new Label("init");
20 fp.add(label);
21 initWidget(fp);
22 }
23
24 public Label getLabel() { return label; }
25 public TextBox getTextBox() { return textBox; }
26 public Button getButton() { return button; }
27 }
最后,我们启动前面的JUnit测试:
1 java.lang . ExceptionInInitializerError ...
2 Caused by: java. lang . UnsupportedOperationException : ERROR: GWT. create