java - Cucumber框架创建

标签 java selenium automated-tests cucumber bdd

我即将开始一项新工作,期望建立一个测试框架以允许使用 Cucumber 交付新功能。虽然我熟悉自动化和功能文件的创建,但从头开始创建框架将是我以前从未完成过的任务。被扔进了这里的深渊。

在我们进入 BDD 来提供新功能之前,我们期望将令人兴奋的系统行为写成功能并自动化。在我跑得太远之前,我想确保我对如何开始这项任务的思考是正确的。

我想我从功能文件开始,然后是我的步骤定义,然后编写一些代码来执行这些步骤。关于代码结构,我是否仍然有一个单独的页面类包和一个单独的测试类?或者最好的方法是只为页面类提供一个包,其中包含我们可以对页面执行的所有操作?

有任何资源可以帮助完成这个初始设置结构吗?

最佳答案

使用 Cucumber 不应以任何方式影响您管理代码的方式。所以,无论你拥有什么、习惯什么,都可以。您唯一需要添加的是“粘合”代码,它是一种中介类,它将 Cucumber 步骤转换为实际的类和方法,然后执行它们。

因此,通常您会从功能文件开始,根本不考虑实现。这一点至关重要,因为它可以帮助您将业务逻辑与实现分离,这也是使用 Cucumber 的首要目的。下一步是使用 Cucumber 运行程序运行功能文件,它会自动建议您应该为“粘合”类方法指定哪些名称,以便与步骤相匹配。

例如,假设您在功能文件中创建了以下步骤:

I have logged in to the system

由于尚未实现,如果您尝试运行该场景,Cucumber 将抛出异常:

cucumber.api.PendingException: TODO: implement me

但它还会建议此功能步骤的步骤实现应该是什么样子。所以在这种情况下:

You can implement missing steps with the snippets below:

@Given("^I have logged in to the system$")
public void i_have_logged_in_to_the_system() throws Throwable {
    // Write code here that turns the phrase above into concrete actions
    throw new PendingException();
}

最后一步是实现这些方法,在这里您可以重用您希望的任何实现。

关于java - Cucumber框架创建,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48314881/

相关文章:

java - 在 Java 中创建 .obj 文件

javascript - 告诉正则表达式不要做它应该做的事情。 (不要替换 $&)

c# - 如何使用selenium Web驱动程序来引用Web浏览器的运行实例?

java - Birt:内存不足,无法执行报告

java - 更改 GridView 中单元格的大小?

testing - 为什么smallCheck的 `Series`类在构造函数中有两个类型?

javascript - 测试咖啡厅 : How to use typeText without selector

java - 获取打开的选项卡 Selenium/Java 的 URL

Java循环在arraylist中查找对象无法超过index[0]

selenium - 在 Jenkins 上通过 Selenium 执行测试套件时出现错误 [SEVERE] : Timed out receiving message from renderer: 20. 000