黄瓜/小黄瓜知道类似量规的概念吗?

问题描述 投票:0回答:1

我使用Gauge一段时间,他们想到了concept,其定义为“概念提供了将可重复使用的逻辑步骤组合并为一个单元的能力。一个概念提出了摘要通过组合逻辑步骤组来确定业务意图”(Gauge conpect documentation)。

因此,一个人可以轻松地将多个步骤组合在一起,并在另一个测试用例中将它们作为一个步骤重复使用。

我想知道,黄瓜/小黄瓜是否有类似的东西?

背景是我有一个end2end测试用例,在其中包含多个断言,我想解开并创建多个场景。但是然后,我将有多个场景中有重复的步骤-我想将相关场景归为一组,以便将相应场景中的各个步骤最小化。

谢谢:)

automated-tests cucumber gherkin getgauge
1个回答
0
投票

Gauge是编写验收测试的框架。标尺规范基本上是一种手动测试脚本,已经可以执行。因此,重用步骤很有意义,因为它们倾向于描述底层操作。

另一方面,黄瓜有助于BBD,您可以使用Gherkin捕获系统的行为,而不是测试中的操作。因此,您无需编写Login as user "Charles: and create project "Firebird"来描述操作,而是编写Given Administrator "Charles" created the project "Firebird"

这是一个观点上的转变,但有助于清楚地传达软件应执行的操作,而不是其应如何操作。

因此,您通常避免在Gherkin中编写底层操作。而是将它们提取到方法中,然后从步骤中调用这些方法。然后,您还可以在其他步骤中重用这些方法。

例如,假设我们有两个创建用户的步骤:

  • Given Administrator "Charles" created the project "Firebird"
  • And "Jullia" is added to project "Firebird"
@Given("{role} {persona} created the project {project}")
public void persona_with_role_creates_a_project(Role role, Persona persona, Project project){
    createRole(role);
    createUserForPersona(persona);
    addRoleToUserForPersona(persona, role);
    loginUserForPersona(persona);
    createProject(project);
}

@And("{persona} is added to project {project}")
public void persona_with_role_creates_a_project(Persona persona, Project project){
    createUserForPersona(persona);
    addUserForPersonaToProject(persona, project);
}


@ParameterType("\"([^"]+)\"")
public Persona persona(String name){
   // look up the persona by name from somewhere e.g. a config file
}

ect...

private void createRole(Role role){
    // API calls to make a role here
    // For test isolation it is important you don't reuse anything between tests.
}

private void createUserForPersona(Persona persona, Role role){
   // API calls to create a user
   // Don't forget to store the credentials for the persona somewhere
}

ect..

请注意,创建用户和项目可能需要大量信息。因此,与其将所有这些信息拼写到功能文件中,不如我们引用一个角色(“ Charles”,“ Firebird”),这些角色充当我们创建的项目类型的模板。我们可以使用参数类型({persona}{project})将这些提供给步骤定义对象,而不是普通字符串。这些将在执行步骤之前将字符串转换为对象。

© www.soinside.com 2019 - 2024. All rights reserved.