首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何组织Cucumber中的规格定义?

如何组织Cucumber中的规格定义?
EN

Stack Overflow用户
提问于 2012-10-17 17:33:02
回答 3查看 5.6K关注 0票数 16

我们正在考虑在我们的项目中使用Cucumber进行验收测试。

当我们在Cucumber feature中编写scenario时,我们会编写一系列GivenWhenThen语句。

当我们使用cucumber-jvm项目时,GivenWhenThen语句与(JUnit)类中的Java方法相关。

我想知道在项目结构中,与Given / When / Then相关的代码最好的组织是什么。我主要关心的是一个大项目上的黄瓜测试的维护,其中场景的数量非常重要,特别是关于在功能之间共享的项。

我至少可以看到两种主要的方法:

  1. 每个功能都与它自己的JUnit类相关。因此,如果我有一个foo/bar/baz.feature cucumber文件,我会找到相关的foo.bar.Baz JUnit类,其中包含足够的@Given@When@Then注释,并将cucumber @Given@When@Then方法添加到“主题”类和包中。例如,如果在我的黄瓜场景中有一条语句Given user "foo" is logged,那么带@Given("^user \"([^\"]*)\" is logged$")注释的方法将位于foo.user.User类方法中,但是稍后在同一黄瓜场景中使用的@When方法可能位于不同的Java类和包中(假设是Java类和包

对我来说,第一种方法似乎很好,因为我可以轻松地处理我的cucumber特性和Java代码之间的关系。但缺点是我可能有很多冗余或代码重复。此外,可能很难找到可能的现有@Given方法,以避免重新创建它(集成开发环境可以提供帮助,但这里我们使用的是Eclipse,而它似乎没有给出现有Given语句的列表?)。

当你在几个黄瓜特性之间共享Given条件时,另一种方法本质上看起来更好,因此我想避免代码重复。这里的缺点是很难在IDE Java方法和Given cucumber语句之间建立联系(也许,同样,IDE可以提供帮助?)。

我对cucumber非常陌生,所以也许我的问题不是一个好问题,随着时间的推移和经验的积累,其结构将不言而喻,但我希望得到关于其用法的良好反馈……

谢谢。

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12931281

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档