首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Effective Testing with RSpec 3 (第一部分:入门)

安装RSpec 首先,要使用RSpec 3,您需要最新版本的Ruby。 我们已经使用Ruby 2.4本书中测试了我们的示例,并鼓励您将该版本用于最简单的路径。...在其他版本的Ruby,您可能会得到略微不同的结果。...如果您使用的是较旧的东西,请转到Ruby下载页面并获取更新的内容 RSpec由三个独立的Ruby宝石组成: •rspec-core是运行规范的整体测试工具。...组,示例和期望 此文件定义了您的测试RSpec中称为您的规范,是规范的缩写(因为它们指定了代码的所需行为)。 外部RSpec.describe块创建一个示例组。...在编写规范时,您将倾向于将每个示例都集中您正在测试的一个特定行为片测试与规格与示例 测试,规格和示例之间有什么区别? 它们都引用您编写的代码来检查程序的行为。

2K30
您找到你想要的搜索结果了吗?
是的
没有找到

Effective Testing with RSpec 3(介绍)

典型的代码片段将包含一行或多行Ruby代码,供您在文本编辑器中输入,以便以后运行它们。...我们将一次显示几行代码文件。 如果您需要更多任何给定代码段的上下文,您可以单击文件名标题(eBook中)或打开书籍的源代码(本章末尾链接)以立即查看整个文件。...本书的后面,我们有时会从一个更大的项目中显示出孤立的片段; 这些并不适合您在计算机上运行。 如果您对自己运行它们感兴趣,可以从本书的源代码存储库下载所有项目文件。...如果您是Ruby的新手,我们建议您首先使用Zed Shaw的Learn Ruby the Hard Way eBook或者exercise.io.3,4Ruby教程等资源来学习一些语言。...虽然我们已经Ruby 2.2测试了多个Ruby版本的代码,但是如果您按照我们文本中提到的完全相同的版本,您将获得最佳体验:Ruby 2.4,RSpec 3.6等等。

2K20

“小众”之美——RubyQA自动化中的应用

背景 加入外卖上海团队时,共2名QA同学,分别负责App与M站的功能测试,自动化测试停留在学习北京侧接口测试框架的阶段,实效近乎为0,能力结构代码这部分是明显薄弱的。...自身应该算是“纯粹”的测试人员,测试开发”这重职业并不普及的年代,一直希望有种语言可以让测试的开发效率超过研发,Ruby做到了。 人性化的语法,各种糖。...文件,则可以生成最终的测试数据(YML文件)及测试类和Case文件。...,原则无需修改,只需要在测试数据的Excel中编写匹配规则及预期输出,基本实现了单个接口无编码的数据驱动测试。...Adapter,Adapter通过解析参数进行反射调用,这样对于框架来说无需改动,只需对部分文件模板稍作调整,也无需Ruby中混写Java代码,实现了最少的代码量—2行。

1.8K30

Step by Step!Kubernetes持续部署指南

Semaphore,block按照顺序运行,与此同时,block中的job也会并行运行。流水线包含2个block,一个是用于库安装,一个用于运行测试。 ?...既然每个job都在完全隔离的机器里运行,那么我们必须依赖缓存(cache)来job运行之间存储和检索文件。...请注意我们重复使用了checkout和cache的代码以将初始文件放入job中。最后一个命令用于启动RSpec测试套件。...实际,部署的最小单元是pod。一个pod就好像一群形影不离的朋友,总是一起去同一个地方。因此要保证pod中的容器运行在同一个节点并且有相同的IP。...它们可以同步启动和停止,并且由于它们同一台机器运行,因此它们可以共享资源。 pod的问题在于它们可以随时启动和停止,我们没办法确定它们会被分配到的pod IP。

80020

logstash input插件开发

但如果公司内部开发的数据库或其它存储类的服务不能和开源产品接口协议兼容,比如腾讯自研的消息队列服务CMQ不依赖于其它的开源消息队列产品,所以不能直接使用logstash的logstash-input-kafka...或logstash-input-rabbitmq同步CMQ中的数据;腾讯云对象存储服务COS, 鉴权方式和AWS的S3存在差异,也不能直接使用logstash-input-s3插件从COS中读取数据...: cos.rb: 主文件文件中编写logstash配置文件的读写与源数据获取的代码,需要继承LogStash::Inputs::Base基类 cos_spec.rb: 单元测试文件,通过rspec...spec/inputs/cos_spec.rb中增加如下测试代码: # encoding: utf-8 require "logstash/devutils/rspec/spec_helper" require...是一个ruby测试库,通过bundle命令执行rspec: bundle exec rspec 如果cos.rb中的代码没有语法或运行时错误,则会出现如果信息表明测试成功: Finished in 0.8022

4K61

GitLab CICD 配置指南 .gitlab-ci.yml文件的配置

GitLab的CI/CD 完全是由.gitlab-ci.yml 文件内容决定的 GitLab的CI/CD的具体内容是由.gitlab-ci.yml文件定义的, 一个GitLab的项目,项目根目录只有有....gitlab-ci.yml文件,并且配置了Runner,那么每次提交代码 都会触发CI的pipline .gitlab-ci.yml文件是告诉GitLab的runner去做什么每次触发后,runner...YAML的文件格式来编写的,只允许空格,不允许Tabs 项目根目录创建一个文件,下面是一个Ruby的项目 before_script: - apt-get update -qq && apt-get...: script: - bundle exec rubocop 这是对大多数Ruby应用都适用的简单配置 定义了两个任务 rspec和rubocop 分别会执行不同的脚本 每次任务执行之前...GitLab中Runnner是运行那些你再.gitlab-ci.yml中定义的任务,一个Runner可能是一个虚拟机, 一个VPS,一个Docker容器,或者一个集群,GitLab与Runner通信通过

99110

使用spring提高rails开发效率

rails开发者都有着这样类似的经历: pair写了一个测试 运行测试 等待 该我来编写产品代码 运行测试 等待 代码有bug 测试失败 修复测试 运行测试 等待 测试通过,yeah!...pair很给力,很快就把一个taks实现成一个测试用例 桌子的水果也很好吃。 。。。...可是,我总觉得有点不爽快,原来是那么多的等待,每运行一次测试,就需要等待十几秒甚至几十秒,每天我会运行上千次测试,这是多大的浪费?...###安装 建议把spring安装到rvm的global gemset中去,这样就可以多个project使用spring 安装命令非常简单: gem install spring ###使用 执行测试的命令也非常简单...: spring rspec 当第一次使用spring运行测试,rake taks, db migration时,spring会自动在后台load rails 环境,因此执行速度也很慢,但是当再次执行时

3.5K60

开发者死后,他的开源项目会有人继续维护吗?

前文提到他给 Ruby 做了一些的关键工具,包括了他给 Ruby 开发的 build 工具Rake。 Weirich 离世后,Rake 已移交到 Ruby 官方。...如果软件库无法及时更新,软件升级后也就无法运行。这意味着在用户更新了相应软件之后,那些依赖于过期库的应用程序可能无法工作。当维护代码库的开发人员离世或放弃一个项目时,使用该软件的每个人都会受到影响。...但是 Searls 注意到一个测试工具 Rspec-Given 没有被移交出去,他有意负责更新,但一路遇到了不少麻烦。...Rspec-Given的代码托管代码托管和协作站点 GitHub ,后者目前拥有 6700 万个代码库。...Weirich GitHub Rspec-Given 页面是其他 Ruby 用户报告错误或自愿帮助改进代码的主要地方。

1.2K100

通过 .gitlab-ci.yml配置任务

job之前运行的命令 after_script 否 定义每个job之后运行的命令 variable 否 定义构建变量 cache 否 定义一组文件列表,可在后续运行中使用 image和services...中没有被跟踪的文件rspec: script: test cache: untracked: true 缓存binaries下没有被git跟踪的文件rspec: script...以下是一些例子: 发送binaries和.config中的所有文件: artifacts: paths: - binaries/ - .config 发送所有没有被Git跟踪的文件: artifacts...就像GIT_STRATEGY一样,它可以设置全局variables或者是单个job的variables中设置。...如果队列中有多个jobs,或者您正在重试旧的job,则需要测试的提交应该在克隆的Git历史记录中存在。设置GIT_DEPTH太小的值可能会导致无法运行哪些旧的commits。

5.5K20

持续集成gitlab-ci.yml配置文档基础

以下是一些例子: #发送 binaries 和 .config 中的所有文件: artifacts: paths: - binaries/ - .config #发送所有没有被Git跟踪的文件...人们经常谈论他们,就好像每个都是“管道”一样,但实际他们只是综合管道的一部分。 CI Pipeline: gitlab-ci.yml 中定义的构建和测试阶段。...整个管道可以自动运行,但实际部署到生产需要点击。(GitLab 8.15中引入) 作业排序:常规管道图单个管道页面中,作业按名称排序。...受保护分行的安全:管道受保护的分支执行时,将执行严格的安全模型,只有允许用户合并或推送 特定分支时,才允许受保护的分支执行以下操作 : 运行手动管道(使用Web UI或Pipelines API...) 运行预定的管道 使用触发器运行管道 现有管线上触发手动操作 重试/取消现有作业(使用Web UI或Pipelines API) 标记为受保护的变量仅适用于受保护分支运行的作业,从而避免不受信任的用户无意中访问敏感信息

14.7K30

持续集成gitlab-ci.yml配置文档基础

以下是一些例子: #发送 binaries 和 .config 中的所有文件: artifacts: paths: - binaries/ - .config #发送所有没有被Git跟踪的文件...人们经常谈论他们,就好像每个都是“管道”一样,但实际他们只是综合管道的一部分。 CI Pipeline: gitlab-ci.yml 中定义的构建和测试阶段。...整个管道可以自动运行,但实际部署到生产需要点击。(GitLab 8.15中引入) 作业排序:常规管道图单个管道页面中,作业按名称排序。...受保护分行的安全:管道受保护的分支执行时,将执行严格的安全模型,只有允许用户合并或推送 特定分支时,才允许受保护的分支执行以下操作 : 运行手动管道(使用Web UI或Pipelines API...) 运行预定的管道 使用触发器运行管道 现有管线上触发手动操作 重试/取消现有作业(使用Web UI或Pipelines API) 标记为受保护的变量仅适用于受保护分支运行的作业,从而避免不受信任的用户无意中访问敏感信息

11.7K20

用 GitLab 做 CICD 是什么感觉,太强了!!

GitLab CI/CD 是如何工作的 为了使用GitLab CI/CD,你需要一个托管GitLab的应用程序代码库,并且根目录中的.gitlab-ci.yml文件中指定构建、测试和部署的脚本。...为了可视化处理过程,假设添加到配置文件中的所有脚本与计算机的终端上运行的命令相同。...: - ruby --version 6 before_script属性将在运行任何内容之前为你的应用安装依赖,一个名为run-test的job(作业)将打印当前系统的Ruby版本。...仓库一旦收到任何推送,GitLab将立即查找.gitlab-ci.yml文件,并根据文件的内容Runner启动作业。...部署应用 到目前为止,你应该看到管道正在运行,但是它到底在运行什么呢? 管道内部分为4个阶段,我们可以查看每个阶段有几个作业在运行,如下图: 构建 -> 测试 -> 部署 -> 性能测试 ?

9K42

微软发布IronRuby

微软公司在其MIX07大会上宣布了IronRuby,一个运行在.NET CLR之上的Ruby实现的发布。...他背后不断推动合理的Ruby规范的制定,很早之前,他就创建了Ruby Spec Wiki,并试图鼓励社区参与到这个项目中去。...另一项努力就是两个Google SoC资助的项目,用来使用RSpec(一个针对“可执行规范”的Ruby框架)来定义可规范Ruby行为的测试套件。...Nutter鼓励微软参与到这项努力中来: 我们希望他们(微软)今后参与到我们当中来,一同构建Ruby的社区级规范以及一系列通用的开源兼容性测试。...这也证明了我们JRuby所花的时间和精力没有白费,而且也强调了JVMRuby和其它动态语言的重要性。 查看原文:Microsoft announces IronRuby

863100
领券