当前位置: 首页 > news >正文

吉林省高等级公路建设局网站开源企业cms建站系统

吉林省高等级公路建设局网站,开源企业cms建站系统,珠海微信网站,广州家具网站建设本篇介绍 Cucumber 的基本使用#xff0c; 因为Cucumber是BDD的工具#xff0c; 所以首先需要弄清楚什么是BDD#xff0c;而在介绍BDD之前#xff0c;先看看常见的软件开发方法。 常见的软件开发方法 面向过程开发#xff08;Procedural Development#xff09;#x…本篇介绍 Cucumber 的基本使用 因为Cucumber是BDD的工具 所以首先需要弄清楚什么是BDD而在介绍BDD之前先看看常见的软件开发方法。 常见的软件开发方法 面向过程开发Procedural Development面向过程开发注重流程和功能的实现而不是业务需求的实现。面向对象开发Object-Oriented Development面向对象开发注重对象之间的交互和关系而不是业务需求的实现。测试驱动开发Test-Driven DevelopmentTDDTDD注重测试用例的编写和通过测试用例来驱动代码的实现而不是业务需求的实现。行为驱动开发Behavior-Driven DevelopmentBDDBDD注重业务需求和行为并通过测试用例来验证和定义业务需求的实现。 BDD的由来 BDD是行为驱动开发的缩写。它是一种软件开发方法强调开发人员、测试人员和业务利益相关者之间的协作以确保正在开发的软件与业务目标相一致。 BDD是在2003年由Dan North首次提出的。他发现在软件开发中注重测试和自动化并不足以确保软件的质量和正确性。因此他提出了一种基于“Behavior”行为的开发方法即BDD。BDD旨在通过强调需求和业务价值更紧密地结合开发和测试团队提高软件的质量和客户满意度。 BDD涉及使用自然语言描述或所需系统行为的示例这些示例被翻译成自动化测试以确保系统的行为符合预期。这种方法有助于确保软件的开发是在清楚地理解所需的行为和结果的情况下进行的以满足所有利益相关者的需求。 Cucumber 是什么 Cucumber 是一个行为驱动开发BDD工具用于创建和运行自动化测试以确保软件系统的行为符合业务需求和用户期望。它用自然语言编写测试用例这些测试用例可以与开发和业务团队共享和理解。Cucumber支持多种编程语言并且可以与各种测试框架集成。 Cucumber用于描述应用程序的行为、功能和需求。它的目标是帮助开发人员和非技术人员之间的沟通以及帮助开发人员编写更易于维护的测试代码。通过使用Cucumber团队可以创建基于真实场景的自动化测试这些测试使用了普通语言来描述行为因此它们对所有团队成员来说都是可理解的。以下是Cucumber的一些特点和用途 特点 支持普通语言Cucumber用于编写测试的语言是Gherkin这是一种自然语言风格的语言专门设计用来描述业务行为而不需要注入具体的如何实现。因此非技术的团队成员(比如产品经理和业务分析师)也能参与测试和开发的过程。 支持多种语言尽管Cucumber起初是为用Ruby写的项目设计的但是现在已经支持多种编程语言包括Java, JavaScript, .NET,等。 支持多种测试框架和工具包括Selenium和Appium。 可以生成易于阅读的测试报告并提供了可视化的测试结果。 整合支持Cucumber可以和许多流行的持续集成/持续部署工具整合例如Jenkins和TeamCity。 可维护性与重用性Cucumber的测试案例是用普通话写的所以它们是可理解的并且可以重复使用。此外因为测试案例直接对应到需求所以他们很容易维护。 用途 协助团队沟通Cucumber使用自然语言描述应用程序的需求和功能可以帮助开发人员和非技术人员之间的沟通。自动化测试使用Cucumber可以编写自动化测试用例这些测试用例模拟了用户使用应用程序的场景以确保应用程序的正确性。生成文档Cucumber测试用例描述了应用程序的行为和需求可以作为应用程序的文档。 总之Cucumber是一款功能强大的BDD工具可以帮助开发团队更好地协作、编写高质量的测试用例和文档。 基于Java 语言的Cucumber 使用实例 这里使用基于Maven的项目为例 在Eclipse 上进行开发。 步骤如下 导入依赖 需要导入 cucumber-java 和 cucumber-junit 这里导入当前最新版本 7.14.0。 dependencygroupIdio.cucumber/groupIdartifactIdcucumber-java/artifactIdversion7.14.0/version/dependencydependencygroupIdio.cucumber/groupIdartifactIdcucumber-junit/artifactIdversion7.14.0/version/dependency创建规格文件user.feature 文件位于 src/test/resources 目录下 Feature: UserScenario: createGiven User 100 not existWhen create User 100Then can query User 100这个文件的解读是 系统中User功能的 create场景 如果ID为100的 User不存在就创建这个User, 创建完成之后就可以查询到这个User了。 根据规格文件完成测试的代码这里就是根据规格中的步骤定义的 文件名为StepDefinitions.java。 /** * Title: StepDefinitions.java * Package com.osxm.je.topic.bdd * Description: TODO * author XM * date 2023年10月9日 下午10:03:34 * Copyright: 2023 * version V1.0 */ package com.osxm.je.topic.bdd;import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertNotNull;import java.util.HashMap; import java.util.Map;import com.osxm.je.basic.entity.User;import io.cucumber.java.en.Given; import io.cucumber.java.en.Then; import io.cucumber.java.en.When;public class StepDefinitions {private MapInteger, User userRepo new HashMapInteger, User();private User user;Given(User {int} not exist)public void user_not_exist(Integer userId) {assertFalse(userRepo.containsKey(userId));}When(create User {int})public void create_user(Integer userId) {user new User(userId);userRepo.put(userId, user);}Then(can query User {int})public void query_user(Integer userId) {user userRepo.get(userId);assertNotNull(user);} } 注意 Given 注解中使用 {int} 定义的变量和规格文件user.feature中的对应 编写测试入口类 CucumberTest.java /** * Title: CucumberTest.java * Package com.osxm.je.topic.bdd * Description: TODO * author XM * date 2023年10月9日 下午10:05:35 * Copyright: 2023 * version V1.0 */ package com.osxm.je.topic.bdd;import org.junit.runner.RunWith;import io.cucumber.junit.Cucumber; import io.cucumber.junit.CucumberOptions;RunWith(Cucumber.class) CucumberOptions(features src/test/resources) // 要测试的 Feature 文件的位置 public class CucumberTest {}运行测试后的效果如下 如果将规格文件故意修改错误 Feature: UserScenario: createGiven User 100 not existWhen create User 100Then can query User 200则运行结果就是错误的 如下图
http://www.sczhlp.com/news/273253/

相关文章:

  • 建设自己的电影网站winserverfrp可以做网站吗
  • 诸城易讯网站建设服务中心英文wordpress自动更新
  • 益阳北京网站建设上海国际人才网
  • 房屋中介网站怎么做建设部网站城建学院
  • 设计网站的流程网站建设实训心得 总结
  • 网站建设的功能需求分析域名怎么买
  • vs2008 新建网站seo深度优化外包
  • 顺德网站建设找顺的网站建设好如何开通
  • 专业模板建站公司做网站赚钱的案例
  • TensorRT 和 ONNX Runtime 推理优化实战:10 个降低延迟的工程技巧
  • China Collegiate Programming Contest (CCPC) Jinan Site (The 3rd Universal Cup. Stage 17: Jinan) 题解
  • 山西做二级建筑资料在哪个网站福步外贸app下载
  • 济南网站二手书的网站建设
  • 福建远方建设有限公司网站wordpress 获取目录结构
  • 云上的网站怎么做等保制作网站公司谁家好
  • 网站域名查询系统游戏代理商
  • 企业网站运营方案内蒙古赤峰市建设局网站
  • 成都网站设计推荐网站建设企业网站界面设计
  • app设计网站推荐新公司 做网站 流程
  • 做网站用的代码襄阳网站建设需要多少钱
  • 换公司网站域名要改吗工信部 网站备案规定
  • 微信小程序怎么做购物网站网站建设电子商务
  • 北京性价比网站建设一级a做爰片官方网站
  • 找到网站永久域名内蒙古呼和浩特景点
  • 网站需要租服务器吗最美情侣高清免费视频播放
  • 网站建设后如何修改域名备案网站购买
  • 栖霞做网站价格怎么找做企业网站的
  • 中山市建设局网站窗口电话赤峰网站设计公司
  • 哪里做网站的品牌网球
  • 阿里云可以做网站么哪个网站做图片外链