让我们进行以下 TestNG 测试:
@Test
public void Test1() {
}
@Test (dependsOnMethods={"Test1"})
public void Test2() {
}
@Test (dependsOnMethods={"Test2"})
public void Test3() {
}
测试用作功能性端到端 webui 测试(使用 Selenium Webdriver)。每个测试方法都是长 e2e 场景中的一个步骤。
我们如何重构测试以使其更具可读性?最好的解决方案可能是删除注释中的所有这些“dependsOnMethods”参数,并隐式提供这个“dependsOnMethods”功能。问题是如何?按优先顺序排列的期望:
- 找到让 TestNG 参与其中的解决方案
- 保留TestNG,但涉及任何其他工具,例如easyb?使用 groovy 而不是 java...我可以将 TestNG 组与 easyb 一起使用吗?是否有可能,不是 bdd 风格而是“junit”风格的easyb,比如:
给定“用户已登录并设置专家模式”,{
//... setup, a la @BeforeClass
}
然后“用户可以启用bla bla bla”{
//...
}
然后“用户可以检查便便便便”{
//...
}
然后“用户保存更改”{
//...
}
然后“用户还原更改”,{
// Tear Down, a la @AfterClass
}
'刚刚开始在同一个java项目中用groovy编写其他测试类'有什么问题吗?
- 踢TestNG,但用什么?TestNG 组功能 - 是必需的。
一个疯狂的解决方案可能是 - 打破一切并搬到修昔底德。但就我而言,这不是一个选择。
PS我知道依赖测试是一种“不好的做法”。但我相信“测试依赖项本身”也是自动化的一个好点......