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