iis服务器助手广告广告
返回顶部
首页 > 资讯 > 前端开发 > JavaScript >在TypeScript项目中进行BDD测试
  • 655
分享到

在TypeScript项目中进行BDD测试

2024-04-02 19:04:59 655人浏览 八月长安
摘要

目录什么是BDD?Gherkin语法给typescript项目配置BDD测试框架Cucumber.js什么是BDD? BDD(Behavior-Driven Design)是软件团队

什么是BDD?

BDD(Behavior-Driven Design)是软件团队的一种工作方式,通过以下方式缩小业务人员和技术人员之间的差距:

  • 鼓励跨角色协作,建立对待解决问题的共同理解
  • 以快速、小迭代的方式工作,以增加反馈和价值流
  • 生成系统文档,自动对照系统行为进行检查

我们通过将协作工作的重点放在具体的、真实的例子上来实现这一点,这些例子说明了我们希望系统如何运行。我们用这些例子来指导我们在持续合作的过程中从概念到实施。

Gherkin语法

BDD特性(Feature)描述采用Gherkin语法。Gherkin使用一组特殊的关键字为可执行规范提供结构和意义。每个关键词都被翻译成多种语言;在本参考资料中,我们将使用英语。

Cucumber是流行的BDD测试框架,支持各种平台,其文档中的大多数行都以一个关键字开头。
注释仅允许出现在新行的开头,即要素文件中的任何位置。它们以零个或多个空格开头,后跟散列符号(#)和一些文本。(Cucumber目前不支持区块注释。)

空格或制表符可用于缩进。建议的缩进级别为两个空格。下面是一个例子:

Feature: Guess the Word
  # The first example has two steps
  Scenario: Maker starts a game
    When the Maker starts a game
    Then the Maker waits for a Breaker to join
  # The second example has three steps
  Scenario: Breaker joins a game
    Given the Maker has started a game with the word "silky"
    When the Breaker joins the Maker's game
    Then the Breaker must guess a word with 5 characters

Gherkin语法具体可以参考Gherkin Reference - Cucumber Documentation

给TypeScript项目配置BDD测试框架Cucumber.js

通过命令yarn add -D @cucumber/cucumber chai 安装BDD测试框架Cucumber.js和断言(Assert)框架chai。

创建目录features,在目录下创建文件bank-account.feature,内容如下:

# features/bank-account.feature
Feature: Bank Account
  Scenario: Stores money
    Given A bank account with starting balance of $100
    When $100 is deposited
    Then The bank account balance should be $200

此文档描述了存款场景,银行存款账户有100美金,存入100美金,则账户应该有200美金。

创建step-definitions\bank-account.steps.ts

const { Given, Then, When} = require( '@cucumber/cucumber');
const { assert } = require( 'chai');
let accountBalance = 0;
Given('A bank account with starting balance of ${int}', function(amount) {
    accountBalance = amount;
});
When('${int} is deposited', function (amount) {
    accountBalance = Number(accountBalance) + Number(amount);
});
Then('The bank account balance should be ${int}', function(expectedAmount) {
    assert.equal(accountBalance, expectedAmount);
});

我们需要创建与之对应的测试代码,代码将通过类型与特性文件中输入和输出验证进行映射,其中Given对应的方法将获得100美金初始账户金额的映射,传给accountBalance。在When对应的方法中,amount测试会获得存入100美金的金额映射。最后,在Then对应的方法中expectedAmount会映射到200美金,用来验证最后是否与accountBalance相等,如果相等断言正常返回,否则BDD判断测试Case失败。

我们可以通过命令

yarn cucumber-js features\**\*.feature -r step-definitions\**\*.js

运行测试。

要想完成自动化配置,可以在工程根目录下创建文件cucumber.js,内容如下:

// cucumber.js
let common = [
    'features*.feature', // Specify our feature files
    '--require step-definitions*.js', // Load step definitions
    '--fORMat progress-bar', // Load custom formatter
].join(' ');
module.exports = {
    default: common
};

再次执行命令yarn cucumber-js,通过cucumber.js文件中的配置项,会自动找到feature文件和步骤定义脚本文件,完成BDD测试工作。

参考:

BDD Testing & Collaboration Tools for Teams | Cucumber

以上就是在TypeScript项目中进行BDD测试的详细内容,更多关于TypeScript项目BDD测试的资料请关注编程网其它相关文章!

--结束END--

本文标题: 在TypeScript项目中进行BDD测试

本文链接: https://www.lsjlt.com/news/144903.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 在TypeScript项目中进行BDD测试
    目录什么是BDDGherkin语法给TypeScript项目配置BDD测试框架Cucumber.js什么是BDD BDD(Behavior-Driven Design)是软件团队的一...
    99+
    2024-04-02
  • 对ASP.Net的WebAPI项目进行测试
    如果项目采取前后端分离的模式进行开发,那么我们的WebAPI最终是需要提供给前端页面来进行调用的。 那么在进行对接之前必须要保证我们的WebAPI没有Bug,在这种情况下作为开发者对...
    99+
    2024-04-02
  • 测试银行项目
    简历上银行项目  -================================================== •项目一:平安新e贷 •项目描述:新e贷是一个,专注于磷矿产业、小型物流运输企业和个人车贷,平台资金由平安银行存管,安...
    99+
    2023-09-02
    python 可用性测试 单元测试
  • ASP.NET Core项目使用xUnit进行单元测试
    目录一、前言二、创建示例项目1、UnitTest.Model2、UnitTest.Data3、UnitTest.IRepository4、UnitTest.Repository5、U...
    99+
    2024-04-02
  • React+TypeScript进行项目构建案例讲解
        react项目构建可以很简单,但是如果是结合typescript,其实也不是很麻烦,官网也有很明确的说明。有两种办法:     1、直...
    99+
    2024-04-02
  • ASP.NET Core项目如何使用xUnit进行单元测试
    小编给大家分享一下ASP.NET Core项目如何使用xUnit进行单元测试,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!一、前言在以前的.NET Fr...
    99+
    2023-06-29
  • 如何进行po+selenium+unittest自动化测试项目实战
    如何进行po+selenium+unittest自动化测试项目实战,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。一、项目工程目录:二、具体工程文件代码:新建一个包名:com...
    99+
    2023-06-22
  • 在React项目中使用TypeScript详情
    目录项目目录及ts文件划分在项目中使用TypeScript具体实践组件声明React Hooks使用useStateuseRefuseCallbackuseMemouseContex...
    99+
    2024-04-02
  • 如何在PHP项目中实现自动化测试?
    如何在PHP项目中实现自动化测试导语:自动化测试在软件开发过程中扮演着重要的角色,可以帮助开发团队更好地保证代码质量和稳定性。在PHP项目中,如何实现自动化测试?本文将介绍一些常用的工具和方法,帮助读者了解如何在PHP项目中进行自动化测试。...
    99+
    2023-11-04
    自动化测试 实现 PHP项目
  • 如何在Vue项目中应用TypeScript类
    目录一、前言二、使用1.@Component2.compued、data、methods3.@props4.@watch5.@emit三 、总结 一、前言 TypeScript是基于...
    99+
    2024-04-02
  • 如何在Oracle中进行备份恢复测试
    在Oracle中进行备份恢复测试的步骤如下: 创建一个测试数据库:首先,在Oracle数据库中创建一个新的测试数据库,用于进行备...
    99+
    2024-04-09
    Oracle
  • 在Java项目中如何对进制进行转换
    在Java项目中如何对进制进行转换?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。十进制转成十六进制: Integer.toHexString(int i) 十进...
    99+
    2023-05-31
    java ava 目中
  • Perl中怎么进行测试和调试
    在Perl中进行测试和调试通常使用的工具包括Test模块和调试器。以下是一些常用的方法: 使用Test模块进行单元测试:Test...
    99+
    2024-03-05
    Perl
  • 如何在java项目组中进行封装
    今天就跟大家聊聊有关如何在java项目组中进行封装,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。java 中的封装介绍及使用方法在面向对象程式设计方法中,封装(英语:Encapsul...
    99+
    2023-05-31
    java ava
  • PHP PHPUnit测试:在大型项目中管理复杂度
    随着项目规模的扩大,PHPUnit 测试套件的复杂度也会随之增加。管理这种复杂度对于确保测试的稳健性、可维护性和效率至关重要。本文探讨了在大型项目中有效管理 PHPUnit 测试复杂度的方法。 模块化测试架构 将测试套件模块化是降低复杂度...
    99+
    2024-04-02
  • 如何在PaddlePaddle中进行目标检测任务
    在PaddlePaddle中进行目标检测任务,可以使用PaddleDetection这个开源的目标检测工具包。PaddleDetec...
    99+
    2024-04-02
  • PHP PHPUnit测试:在实际项目中的案例研究
    PHPUnit是一个广泛使用的PHP单元测试框架,它允许开发者编写和执行可重复、可靠的自动化测试。在现实世界项目中,PHPUnit可以显著提高代码质量,加快开发速度,并降低维护成本。 案例1:验证用户输入 问题陈述:在用户注册表单中,需要...
    99+
    2024-04-02
  • ASP、存储、Spring和Unix:如何在项目中进行优化和调试?
    在软件开发项目中,优化和调试是必不可少的步骤。这些步骤可以帮助开发人员更好地了解其代码,并确保其代码在生产环境中正常运行。本文将介绍如何在ASP、存储、Spring和Unix等技术中进行优化和调试。 ASP优化和调试 ASP是一种服务器端...
    99+
    2023-10-18
    存储 spring unix
  • 如何在Vue3.0 项目中使用TypeScript 和 Vite
    如何在Vue3.0 项目中使用TypeScript 和 Vite?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。Vue的优点Vue具体轻量级框架、简单易学、双向数据绑定、组件...
    99+
    2023-06-06
  • 开发技术进阶指南:如何在Python项目中实现自动化测试?
    自动化测试是软件开发过程中的重要环节,它可以帮助开发人员快速测试代码,减少人为错误,提高代码质量。在Python项目中实现自动化测试,可以使用多种工具和框架,本文将介绍如何使用Python自带的unittest框架和第三方库pytest实...
    99+
    2023-06-28
    编程算法 开发技术 git
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作