Rom*_*las 16 java acceptance-testing cucumber cucumber-jvm cucumber-junit
我们正在考虑在我们的验收测试项目中使用Cucumber.
当我们写scenario在黄瓜feature,我们写的名单Given,When和Then语句.
当我们使用cucumber-jvm项目时Given,When和Then语句与(JUnit)类中的Java方法有关.
我想知道在项目结构中与Given/ When/ 相关的代码的最佳组织是什么Then.我主要担心的是在一个大项目上维护黄瓜测试,其中场景的数量非常重要,特别是关于功能之间共享的项目.
我可以看到至少两种主要方法:
每个功能都与它自己的JUnit类相关.所以,如果我有一个foo/bar/baz.feature黄瓜文件,我会发现相关型号foo.bar.Baz与适当的JUnit类@Given,@When和@Then注释的方法.
独立@Given,@When并且@Then方法进入"主题"类和包.例如,如果在我的黄瓜场景中我有一个语句Given user "foo" is logged,那么带@Given("^user \"([^\"]*)\" is logged$")注释的方法将位于foo.user.User类方法中,但可能,@When稍后在同一个黄瓜场景中使用的方法将在不同的Java类和包中(假设foo.car.RentCar) .
对我来说,第一种方法似乎很好,我可以很容易地做我的黄瓜功能和我的Java代码之间的关系.但缺点是我可能会有很多冗余或代码重复.此外,可能很难找到可能的现有@Given方法,以避免重新创建它(IDE可以提供帮助,但在这里我们使用Eclipse,它似乎没有给出现有Given语句的列表?).
当你在几个黄瓜特征之间共享条件时,另一种方法似乎更好Given,因此我想避免代码重复.这里的缺点是很难在@GivenJava方法和Given黄瓜语句之间建立联系(也许,IDE可以帮助吗?).
我对黄瓜很新,所以也许我的问题不是一个好问题,而且随着时间和经验,结构将是不言而喻的,但我希望得到关于其使用的良好反馈......
谢谢.
我们也开始使用 Cucumber-JVM 进行验收测试,并且在组织代码方面也遇到类似的问题。我们选择为每个功能设置 1 个步骤定义类。目前这很好,因为我们正在测试的功能不是很复杂并且非常独立,我们的功能很少有重叠。
我认为您提到的第二种方法会更好,但是将单个场景的多个不同步骤定义类结合在一起通常具有挑战性。我认为一旦你开始像往常一样添加更多功能并进行重构,最好的项目结构就会变得更加清晰。
同时这里有一个 Cucumber 的 Eclipse 插件,
https://github.com/matthewpietal/Eclipse-Plugin-for-Cucumber
它具有语法突出显示以及编写功能时现有可用步骤的列表。
| 归档时间: |
|
| 查看次数: |
5524 次 |
| 最近记录: |