如何组织黄瓜中的规格定义?
我们正在考虑在我们的项目中使用Cucumber进行验收测试。
当我们在黄瓜中写一个时,我们写一个列表,和语句。scenario
feature
Given
When
Then
当我们使用 cucumber-jvm 项目时,和 语句与 (JUnit) 类中的 Java 方法相关。Given
When
Then
我想知道项目结构中与/ /相关的代码的最佳组织是什么。我主要关心的是维护一个大项目中的黄瓜测试,其中场景的数量非常重要,特别是关于在要素之间共享的项目。Given
When
Then
我可以看到至少2种主要方法:
每个功能都与其自己的 JUnit 类相关。因此,如果我有一个黄瓜文件,我会找到具有足够和注释方法的相关JUnit类。
foo/bar/baz.feature
foo.bar.Baz
@Given
@When
@Then
将 和 方法分离到“主题”类和包中。例如,如果在我的黄瓜场景中我有一个语句,那么带注释的方法将位于类方法中,但可能,稍后在同一黄瓜场景中使用的方法将位于不同的Java类和包中(假设)。
@Given
@When
@Then
Given user "foo" is logged
@Given("^user \"([^\"]*)\" is logged$")
foo.user.User
@When
foo.car.RentCar
对我来说,第一种方法似乎很好,因为我可以很容易地在我的cucumber功能和我的Java代码之间建立联系。但缺点是我可以有很多冗余或代码重复。此外,可能很难找到一个可能的现有方法,以避免重新创建它(IDE可以提供帮助,但在这里我们使用的是Eclipse,它似乎没有给出现有语句的列表?)。@Given
Given
另一种方法似乎更好,当你在几个黄瓜功能之间共享条件时,因此我想避免代码重复。这里的缺点是很难在Java方法和cucumber语句之间建立链接(也许,IDE可以提供帮助?)。Given
@Given
Given
我对黄瓜很陌生,所以也许我的问题不是一个好问题,随着时间的推移和经验,结构将是不言而喻的,但我想得到关于其用法的良好反馈......
谢谢。