我在GWT方面相当缺乏经验,而且我在这项技术中拥有大量的代码库和工作项目。我的任务是指将id分配给将用于自动测试的html元素。我们不能使用一些动态分配的id,因为在自动测试中我们必须指定id的确切值。我现在的方法是使用方法ensureDebug(id),手工编写特定元素的代码。
我认为这样做意味着代码将更像意大利面条,混合的ensureDebug(id)方法在那里使用。我在想是否有任何方法可以做到比现在更容易管理和更清洁。也许可以使用AOP吗? (我从来没有使用AOP,所以我不知道它是否是一个好主意,或者在GWT中是否可能)或者可能除了使用ensureDebug以外的其他方式?
答案 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。