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

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

在本章,你看到: •如何安装RSpec并编写你的第一个specs •如何使用describe,用它来组织你的specs •如何验证期望的结果 •如何解释测试失败 •如何使你的specs不受重复设置代码的影响...•通过明确地基本测试代码与嘈杂的设置代码分开,您可以传达应用程序的实际预期 - 并避免重复不必要的细节。 •重新排序,配置过滤规范时,您会发现订单依赖性,测试速度慢工作不完整。...您将在本书的课程撰写的所有内容都将用于其中一种实践。 安装RSpec 首先,要使用RSpec 3,您需要最新版本的Ruby。...如果您使用的是较旧的东西,请转到Ruby下载页面并获取更新的内容 RSpec由三个独立的Ruby宝石组成: •rspec-core是运行规范的整体测试工具。...组,示例期望 此文件定义了您的测试,在RSpec称为您的规范,是规范的缩写(因为它们指定了代码的所需行为)。 外部RSpec.describe块创建一个示例组。

2K30

Effective Testing with RSpec 3(介绍)

代码片段 我们在本书中提供了代码片段,展示了如何在实际情况中使用RSpec。 这些示例的大多数旨在供您在计算机上使用,尤其是第I部分第II部分的示例。...典型的代码片段包含一行或多行Ruby代码,供您在文本编辑器输入,以便以后运行它们。...从那时起,他就使用教授RSpec来测试从微型微控制器到全功能桌面Web应用程序的所有内容。...在大多数情况下,我们坚持使用类,方法块的基础知识。 我们指导您安装几个Ruby宝石,因此熟悉该过程也很有用。...虽然您将在几个章节构建Web服务,但我们并不认为您已经是Web开发人员。 很多人使用RSpec来测试命令行应用程序,GUI应用程序等。 我们将在讨论过程解释一些Web开发概念。

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

使用 YAML 文件配置 Jenkins 流水线

几年前,我们的 CTO 写了一篇关于使用 Jenkins Docker 为 Ruby On Rails 应用提供持续集成服务的文章。...我们可以构建配置写入到一个被检入到代码库的文件,并且允许任务有权限访问的人修改。...#### Environment 部分 如果构建过程需要一些环境变量,你可以在这部分指定它们。Steps 部分描述的步骤执行过程,Docker 容器会提供你设置好的所有环境变量。...通过 Jenkins 的共享库技术,构建逻辑从 Jenkinsfile 移到了 YAML 文件。...同样的,我们可以构建逻辑移动 JSON 文件,或者任何格式的文件,只你的共享库能解析它,并将它转换成 Jenkins 能理解的格式。

4.6K40

如何在Ubuntu 14.04上使用UnicornNginx部署Rails应用程序

本教程帮助您部署Ruby 在 Rails应用程序的生产环境,使用PostgreSQL作为数据库,在Ubuntu 14.04上使用UnicornNginx。...如果没有,第一步是创建一个使用PostgreSQL作为其数据库的新Rails应用程序。 此命令创建一个名为“appname”的新Rails应用程序,该应用程序使用PostgreSQL作为数据库。...生产密码机密保存在应用程序代码库之外被认为是最佳实践,因为如果您使用的是分布式版本控制系统(如Git)时,它们会很容易被暴露出来。接下来我们讨论如何使用环境变量设置数据库身份验证。...管理环境变量的一种简单方法是使用rbenv-vars插件,我们可以使用它来在运行时密码机密加载到我们的应用程序。...您已使用NginxUnicorn部署了Ruby在Rails应用程序的生产环境。 如果您希望改进生产Rails应用程序部署,您应该查看我们的如何使用Capistrano自动部署的教程系列。

4.2K00

Rails 3 Script 改版

1.环境 # ruby -v ruby 1.9.2p180 (2011-02-18 revision 30909) [x86_64-linux] # rails -v Rails 3.0.7 gem...(2.6.0) rspec核心(2.6.2) rspec-期望(2.6.0) rspec-mocks(2.6.0) rspec-rails(2.6.0) 红宝石fcgi(0.8.9) 红宝石.../my_app” 除了这些,还有: 应用程序生成Rails应用程序代码 销毁使用 “生成”生成的撤消代码 基准测试器查看一段代码的运行速度 profiler 从 一段代码...获取配置文件信息 插件安装插件 运行程序在 应用程序环境 运行一段代码 可以使用 -h 运行所有命令 以获取 更多信息。...account_helper_test.rb 同时加了几个选项: 用法:rails生成GENERATOR [args] [options] 常规选项: -h,[-help] #打印生成器的选项用法

7.1K20

如何在Ubuntu 14.04上使用PumaNginx部署Rails应用程序

本教程帮助您部署Ruby on Rails应用程序的生产环境,使用PostgreSQL作为数据库,在Ubuntu 14.04上使用PumaNginx。...'APPNAME_DATABASE_USER'] %> password: 请注意,数据库用户名密码配置为由环境变量读取...生产密码机密保存在应用程序代码库之外被认为是最佳实践,因为如果您使用的是分布式版本控制系统(如Git),它们很容易暴露出来。接下来我们讨论如何使用环境变量设置数据库身份验证。 保存并退出。...管理环境变量的一种简单方法是使用rbenv-vars插件,我们可以使用它来在运行时密码机密加载到我们的应用程序。...您已使用NginxPuma部署了Ruby on Rails应用程序的生产环境。 更多Ubuntu教程请前往腾讯云+社区学习更多知识。

5.3K10

开发人员看测试之TDDBDD

测试驱动开发是敏捷开发的一项核心实践技术,也是一种设计方法论。TDD的原理是在开发功能代码之前,先编写单元测试用例代码,测试代码确定需要编写什么产品代码。 它的工作流程如下所示: ?...它对TDD的理念进行了扩展,在TDD侧重点偏向开发,通过测试用例来规范约束开发者编写出质量更高、bug更少的代码。...而BDD更加侧重设计,其要求在设计测试用例的时候对系统进行定义,倡导使用通用的语言系统的行为描述出来,系统设计测试用例结合起来,从而以此为驱动进行开发工作。   ...传统的开发模式,客户很难从技术层面理解问题,开发人员很难从业务需求考虑问题,基于这种通用语言形式可以尽可能的避免客户开发者在沟通上的障碍,实现客户开发者同时定义系统的需求。...Cuke4duke – Cucumber support for JVM JDave – RSpec (Ruby) inspired, Mojo 2 & Hamcrest based beanSpec

1.9K60

AnsibleDocker的作用用法

当然,你也会收获一些实践知识,那就是如何通过部署 Ansible Docker 来为 Rails 应用搭建一个完整的服务器环境。 也许有人会问:你怎么不去用 Heroku?...使用 Ansible,你可以一手掌握拥有可描述性数据的基础架构,另一只手掌握不同组件之间的交互作用。这种更简单的操作模式让我把精力集中在如何将我的技术设施私有化,提高了我的工作效率。...我的应用包括一个 Dockerfile,它详细指定了 Ruby Docker 镜像的信息,这里面的步骤能够保证把正确的 Ruby 版本加载到镜像。.... /.profile && cd /terrabox && RAILS_ENV=test bundle exec rake db:create db:migrate && bundle exec rspec...这个例子Ruby Docker 镜像会加载 PATH 配置,这个配置能确保镜像加载正确的 Ruby 版本。 接下来,删除 git 历史,Docker 容器不需要它们。

2.1K20

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

但是你几乎肯定会使用过在他研究基础上开发出的各种应用程序。...在 Heartbleed 安全漏洞被发现后不久,在另一个常见的开源应用程序 Bash 也发现了一个同样的安全问题,这使得无数的 Web 服务器其他设备很容易受到攻击。 肯定还有更多未发现的漏洞。...这意味着在用户在更新了相应软件之后,那些依赖于过期库的应用程序可能无法工作。当维护代码库的开发人员离世或放弃一个项目时,使用该软件的每个人都会受到影响。...他还必须说服分发代码的“包管理系统”Ruby Gems运营商使用他的 Rspec-Given 版本,而不再是 Weirich 的版本,以便使所有用户都能访问的变更。...相关方法能够解决与Rspec-Given有关的潜在问题,但是它也让Searls看到了许多可能出潜在问题。 Searls说:“我们很容易开源看作一种纯粹的技术现象。

1.2K100

评测最火的 11 款 REST API GUI

REST 是建立这些 HTTP 服务的常用约定,REST 客户端可以帮助您从系统检索信息,支持不同在线服务器之间的对话,REST API 定义了一组关于分布式系统架构在接口形式上的规范。...Curl 是一个基础的开源命令行工具,用于在服务器之间传输数据,同时支持创建 HTTP 请求并将其发送到后端服务,同时也支持使用 cURL 命令发送 HTTP 请求,例如 POST、PUT DELETE...Katalan Studio 所有框架、ALM 集成插件包含在一个 package 。...API 自动化工具,是基于 RubyRSpec 驱动框架。...它的一些主要特点是: 支持在 Rails 编写的 API 允许与 Rack 应用程序一起工作 只需了解 Ruby RSpec 基础知识 Apigee 图片 Apigee 是一个用于衡量测试 API

1.5K21

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

Git仓库托管的应用程序代码库,并且每次推送时,都要运行一系列脚本来构建、测试验证代码更改,然后再将其合并到主分支。...GitLab CI/CD 是如何工作的 为了使用GitLab CI/CD,你需要一个托管在GitLab上的应用程序代码库,并且在根目录的.gitlab-ci.yml文件中指定构建、测试部署的脚本。...tag 使用Deploy Boards查看在Kubernetes上运行的每个CI环境的当前运行状况状态 使用Auto Deploy应用程序部署到Kubernetes集群的生产环境 使用GitLab...exec rubocop 上面的例子,定义里两个作业,分别是 rspec rubocop,在每个作业开始执行前,要先执行before_script下的命令 2.2....下面这个例子展示了如何使用Auto DevOpsGitLab.com上托管的项目部署到Google Kubernetes Engine 示例中会使用GitLab原生的Kubernetes集成,因此不需要再单独手动创建

8.9K42

logstash input插件开发

但如果公司内部开发的数据库或其它存储类的服务不能开源产品在接口协议上兼容,比如腾讯自研的消息队列服务CMQ不依赖于其它的开源消息队列产品,所以不能直接使用logstash的logstash-input-kafka...或logstash-input-rabbitmq同步CMQ的数据;腾讯云对象存储服务COS, 在鉴权方式上AWS的S3存在差异,也不能直接使用logstash-input-s3插件从COS读取数据...的代码规范编写,添加类型校验与默认值,就可以从以下配置文件读取配置项: input { cos { "endpoint" => "cos.ap-guangzhou.myqcloud.com...是一个ruby测试库,通过bundle命令执行rspec: bundle exec rspec 如果cos.rb的代码没有语法或运行时错误,则会出现如果信息表明测试成功: Finished in 0.8022...secret_idsecret_key进行权限验证,拉取指定bucket里的数据,为了测试,output设置为标准输出。

4K61

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

=> test ruby 2/3 test ruby => test ruby 3/3 test ruby => test ruby 手动操作:手动操作允许您在使用CI的指定作业之前需要手动操作。...为了确保打算在受保护的跑步者上执行的工作不会使用常规runner,必须对其进行相应标记。 Q:如何计算管道持续时间? 管道的总运行时间排除重试待处理(排队)时间。...开始设置预定义的变量(环境变量)用户自定义的变量。...job_name: script: #bash 访问环境变量使用 () 前缀变量名称:$ - echo $CI_JOB_ID #Windows 批处理环境变量,可以使用...因此,变量保存在存储,他们用于存储非敏感的项目配置,例如: RAILS_ENV 或者 DATABASE_URL 。YAML定义的变量也应用到所有创建的服务容器,因此可以对它进行微调。

14.7K30

微软发布IronRuby

其中,IronRuby与Java VM上的JRuby类似,但与Ruby/.NET Bridge之类的工具不同,这类工具只是Ruby解释器于.NET VM相连接。...更重要的是,这些特性使得所有使用DLR的动态语言可以随意与其它动态语言,以及平台上现有强大的静态语言,比如VB.NETC#,共享代码。...另一项努力就是两个Google SoC资助的项目,用来使用RSpec(一个针对“可执行规范”的Ruby框架)来定义可规范Ruby行为的测试套件。...目前,多数Ruby特性的文档只包含在它们的实现代码。 因此,Charles O....Nutter鼓励微软参与到这项努力来: 我们希望他们(微软)在今后参与到我们当中来,一同构建Ruby的社区级规范以及一系列通用的开源兼容性测试。

856100

Node.js 编写 CLI 的实践

看个demo 注: 此处的Logo使用的是figlet这个npm包, demo地址 npm关联CLI的基本原理 如何让Node.js编写的包可执行?...编写扫描器scanner,对某个Group里面的所有业务项目进行扫描,将不符合规范的仓库不符合规范的地方列举出来,并且捞出责任人。最后通过邮件及定时任务发送给相关同学,并且敦促修改。...之后,需要编写一个规则引擎,这个规则引擎里面有多个规范相关的检查工具,解析完成后会将结果生成HTML格式的字符串。最后调用邮件服务定时任务服务去通知相关开发者。...然后插件下载到Home目录下的.feflow目录(Windows系统为"C:\Users\username.feflow" 目录)下的node_modules里面,并且写入到配置文件里面。...解决办法: 由于windows下HOME环境变量并非默认存在,因此不能直接 使用

2.4K00

.gitlab-ci.yml关键词完整解析(二)

push production HEAD:master environment: name: production 需要注意的是这里定义的环境变量是不能在script值使用的。...被rspec继承后,相同的key会以rspec为准,rspec没有的,而.tests有的,则合并到rspec, 合并后的结果是 rspec: script: rake rspec stage...include 使用include可以导入一个或多个额外的yaml文件到你的CICD配置里,这一你就可以一个很长的流水线,分隔出来。使用include来引入。...也可以几个流水线相同的配置,提取出来,公用。引入的文件扩展名 必须是.yaml或者.yml两种,其他的不行。...rules是用于规定任务的执行规则,使用一个表达式,来规范那些任务执行,那些任务不执行.还可以在任务成功,或者失败后,触发另一个任务。

1.4K31

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

=> test ruby 2/3 test ruby => test ruby 3/3 test ruby => test ruby 手动操作:手动操作允许您在使用CI的指定作业之前需要手动操作。...为了确保打算在受保护的跑步者上执行的工作不会使用常规runner,必须对其进行相应标记。 Q:如何计算管道持续时间? 管道的总运行时间排除重试待处理(排队)时间。...开始设置预定义的变量(环境变量)用户自定义的变量。...job_name: script: #bash 访问环境变量使用 () 前缀变量名称:$ - echo $CI_JOB_ID #Windows 批处理环境变量,可以使用...因此,变量保存在存储,他们用于存储非敏感的项目配置,例如: RAILS_ENV 或者 DATABASE_URL 。 YAML定义的变量也应用到所有创建的服务容器,因此可以对它进行微调。

11.7K20
领券