在GWT中将id添加到html元素的最佳方法

时间:2016-07-15 08:07:09

标签: java gwt coding-style

我在GWT方面相当缺乏经验,而且我在这项技术中拥有大量的代码库和工作项目。我的任务是指将id分配给将用于自动测试的html元素。我们不能使用一些动态分配的id,因为在自动测试中我们必须指定id的确切值。我现在的方法是使用方法ensureDebug(id),手工编写特定元素的代码。


我认为这样做意味着代码将更像意大利面条,混合的ensureDebug(id)方法在那里使用。我在想是否有任何方法可以做到比现在更容易管理和更清洁。也许可以使用AOP吗? (我从来没有使用AOP,所以我不知道它是否是一个好主意,或者在GWT中是否可能)或者可能除了使用ensureDebug以外的其他方式?

2 个答案:

答案 0 :(得分:1)

您还可以设置HTML元素的ID,例如

element.setId("myId");

但这就像你在方法中添加ID的方法一样多了意大利面。

另一种可能性是使用 UiBinder 并在那里设置ID。使用这种方法,您可以在一个地方拥有一个视图的所有ui元素,这些视图应具有id。以bootstrap为例,它看起来像这样:

<b:TextBox ui:field="searchTextBox" b:id="search-text-box"/>

像这样,您可以通过searchTextBox访问视图类中的字段,并将ID search-text-box添加到HTML元素(您也可以用于样式等)。

答案 1 :(得分:1)

我们在添加测试自动化时遇到了同样的问题。据我所知,GWT还不支持像AOP这样的东西。因此,我们必须遵循任何类似意大利面条的方法,只能使用上面提到的@mxlse或您已经关注的方法。

根据我的经验,我建议您在客户端或服务器端创建单独的常量/属性。使用此文件可以保存您可以与测试团队共享的所有ID。