Day 1 介绍测试框架 RSpec

该文章同步发布於:我的部落格

RSpec 是什麽?

  1. 是一款在 2005 年释出的开放原始码的测试函式库
  2. 最热门的 Ruby Gem 之一,超过 5 亿的下载量

  1. 最近的一次版本是 RSpec 3,在 2014 年释出
  2. RSpec 是一种 DSL

领域特定语言(英语:domain-specific language、DSL)指的是专注於某个应用程序领域的计算机语言
RSpec 的语言是专注在测试方面,同时也是为了测试而存在
DSL 举例: HTML VimScript 等等

为什麽要测试程序码?

  • 增加新功能时避免产生故障
    • 新增功能时,只要根据原先的测试规格下去跑,就能知道结果
  • 提供规格给整个应用程序当做文件阅读
    • 有些复杂的应用程序,程序码被模组化四散各地,这时候阅读测试文件能够快速掌握重点以及引用的模组
  • 单独处理某些问题或是 Bug
    • 测试的重点就是一次只测试一个方法或是简单的功能 (Unit Test)
  • 提升程序码品质,尤其在设计方面
    • 後面会提到测试、开发、重构的循环,拥有测试的时候,你才有重构的勇气
  • 缩短开发时程
    • 测试文件若在开发前期就有稳固的基础,你只需要确认程序码能通过测试,基本上就有一定的稳定性

RSpec 的生态系

RSpec 本身包含了三种独立的 Ruby Gem,虽然下载 RSpec 就会一起包给你了!

  • RSpec core
    • 核心的函式库,负责组织和执行测试的部分
  • RSpec expections
    • 配对语法 ( matcher ) 的函式库,负责实现我们的例子
  • RSpec mocks
    • 一个用来假装物件或类别行为的函式库

RSpec 本身也可以和其他函式库的 mocks & expections 整合

Rspec-rails 则是整合了 Ruby on Rails 和 RSpec 而衍生出来的一个 Gem

专案中的资料架构

  • 都会看到一个 spec 的资料夹中存放所有测试的档
  • 在里面会看到类似模仿专案架构的资料名称
  • RSpec 的档案都会以 _spec.rb 当做结尾,让测试时能够找到他
  • 举例:一个 User Class 就会有一个 user_spec.rb 的档案在 spec 资料夹里面

小结

今天非常简单的介绍了 RSpec 这个测试框架,也可以当作整个铁人赛的小目录。

基本上都会以上面提过的东西去做延伸,後面会加入一些范例的程序码来做举例,希望可以让不熟悉 RSpec 的人能够对於这个测试框架有所理解和帮助!

明天我将会介绍测试的种类,因为一个庞大的应用程序对於测试的分类也有所不同,这样才能将执行的效率大幅提升!

/images/emoticon/emoticon41.gif


<<:  Day_03 系统安装(二)

>>:  硬碟管理原理

Day 17 管道的应用

Kernel里面除了前述几种物件之外,我们以下介绍其他几种比较重要的物件,首先我们来看所谓的pipe...

Django template - javascript变数含safe filter

这边有一个javascript变数: var subtitles = {{ json_dual }}...

应用系统的防护基准-传输与资料的加密与保护

适用人员: 技术人员(开发人员)。 适用法规: 资通安全责任等级分级办法 - 附表十资通系统防护基准...

Day 13:「谁还在背字典?」- Tailwind IntelliSense 插件

嗨大家好,昨天建立的如何呢! 我想应该不会遇到太多的困难吧~ 虽然上次没有明讲, 但我想应该大部分...

Linkedin Java 检定题目分享

前言 在更新Linkedkin 个人档案的时候 偶然发现他有技术检定测验 如果总成绩在前30%,会发...