【发布时间】:2012-11-14 12:35:46
【问题描述】:
假设我有这样的表格:
<form action="/foo" method="POST">
<input type="text" name="username">
<input type="text" name="password">
<input type="submit" value="Login">
</form>
在我的例子中,我不需要给任何输入标签一个“id”属性。它不是通过 CSS 设置样式的,没有引用它的 javascript 等等......但是,如果它有一个硬编码的“id”(例如“登录按钮”),那么他们的 QA 部门会喜欢它,以便他们的自动化测试会保持稳定。
缺点 作为开发人员,我对添加没有任何功能用途的 id 属性持高度怀疑态度。
- 我认为它会使代码混乱。
- 让未来的开发人员感到困惑 它。
- 将我们绑定到当时使用的任何测试工具。
- 将我们绑定到产品代码库之外的代码。
- 知道代码将如何测试,反之亦然。
优点: 从 QA 的角度来看,我当然可以同情这会:
- 让他们的工作更轻松。
- 提供稳定性(短期内)
我可以在此处开始的优点/缺点列表上获得一些帮助吗?
【问题讨论】:
-
您的意思是表单本身的 id 吗?还是里面的输入? (我猜是修辞。我明白你的意思)如果形式本身我认为只是因为它是标准的。也许它会允许它“验证”为正确的 html,如果这很重要的话。我同意为每个元素添加一个 id 是愚蠢的。那没有意义
-
也许表单会有一个 id,但这只是因为它是“标准的”(我认为这也是值得商榷的)。我认为更普遍的是,他们要求的是他们正在编写测试以与之交互的任何东西的 id。
-
这些输入上没有标签?也许您只是为了简洁而将它们排除在外?
-
@steveax 正确。这与问题无关。
-
标签与问题相关,因为出于 WAI 和可用性原因,输入字段应具有与
label标记相关联的标签,并且自然的方式使用字段上的id属性。
标签: html css unit-testing testing selenium