📅  最后修改于: 2023-12-03 15:11:54.522000             🧑  作者: Mango
行为驱动的开发(BDD)是一种软件开发方法,强调以业务需求(用户的行为)为导向,通过故事场景、规则和样例来确定用户需求和应用行为。 BDD 让开发人员、测试人员和商业用户之间的沟通更加流畅,可以通过协作快速生成高质量的软件。与测试驱动的开发(TDD)类似,BDD 也强调测试的重要性,不同之处在于 BDD 着重测试业务逻辑和要求,而 TDD 着重测试代码的正确性。
Gherkin 是一种用于描述 BDD 场景的语言。它的语法非常简单,易于理解和使用。Gherkin 本身并不是一个编程语言,它只是一个类似于自然语言的框架,有一定的格式和结构,用于编写应用程序的行为规范。
例如:
Feature: 简单加法
为了学习 BDD,我想学习简单的加法
Scenario: 两个正数相加
Given 有两个数字,分别是1和2
When 我将两个数字相加
Then 结果应该为3
Scenario: 一个正数和一个负数相加
Given 有两个数字,分别是1和-2
When 我将两个数字相加
Then 结果应该为-1
要在应用程序中使用 Gherkin,我们需要使用一个类似于 Gherkin 的转换器将其转换为实际代码。这些转换器通常是由第三方库或应用程序内置的模块提供的。
例如,Cucumber 是一个带有 Ruby、Java 和 JavaScript 支持的 Gherkin 框架,良好地支持 Gherkin 语法。
Feature: 简单加法
为了学习 BDD,我想学习简单的加法
Scenario: 两个正数相加
Given 有两个数字,分别是1和2
When 我将两个数字相加
Then 结果应该为3
Scenario: 一个正数和一个负数相加
Given 有两个数字,分别是1和-2
When 我将两个数字相加
Then 结果应该为-1
使用 Cucumber,我们可以将 Gherkin 语法转换为以下 Ruby 代码:
Given(/^有两个数字,分别是(\d+)和(\d+)$/) do |arg1, arg2|
@arg1 = arg1.to_i
@arg2 = arg2.to_i
end
When(/^我将两个数字相加$/) do
@sum = @arg1 + @arg2
end
Then(/^结果应该为(-?\d+)$/) do |result|
expect(@sum).to eq(result.to_i)
end
使用 Gherkin 的好处很多。下面列举了一些最重要的:
通过使用 Gherkin 和 BDD,我们可以在软件开发过程中,以可视化和可交互的方式,定义和修改业务要求、测试用例和代码实现,提高开发人员和测试人员之间的沟通和协作,减少了开发过程中产生的错误和浪费。同时,这种方法也可以帮助客户和商业用户更好地理解应用程序的功能和价值,使软件开发更具有生产力。