该文章同步发布於:我的部落格
一样打开终端机并确认在你想要的路径( 桌面等等... )
$ mkdir learn-rspec
$ cd learn-rspec
$ rspec --init
create .rspec
create spec/spec_helper.rb
这边指令是先创建一个资料夹 ( learn-rspec ) 并且进入里面,然後下达 rspec --init
的指令。
rpsec --init
这个指令的目的就在於帮你初始化你的这个资料夹,并且帮助我们建立起基本的执行档以及设定档
这时候我们能够透过昨天下载好的 VSCode 来打开这个资料夹 ( VSCode 的使用非常直觉,所以就不介绍了 )
刚刚做完 rspec --init
後,原本空空的资料夹多了一些东西,如果有仔细看 Terminal 的话,应该是早就发现了!
我们先介绍 .rspec 这个执行档的功能,点开档案後会看到 --require spec_helper
这个指令是什麽意思呢?
每一次下达测试的指令之前,不论你是要测试一小个方法,或是一个完整的功能
他都会确保在所有动作之前去读取spec_helper.rb
这个档案,确保你所有的设定档都会被成功执行!
这个档案的是整个 RSpec 的设定档,里面有许多的叙述以及设定,这边就大致的讲述,以及示范各种设定的效果!
这个页面的上半部都是属於注解的叙述,这个档案会在我们刚刚提到的 .rspec
执行档的设定下,保证被读取。
以及确保这个档案保持轻量,避免测试读取的时间过久,效率变低!他希望我们能够只读取我们需要的功能。
还记得我们前几天提过的 RSpec 生态圈吗?
这边可以根据不同的 Gem 去做设定,我们也提过 RSpec 可以在 rspec-expections
以及 rspec-mocks
加入不同的函式库做结合!
红色框框处就是设定 rspec-expections
的地方,这时候一定会不知道如何设定,也不知道有什麽语法可以用~
推荐一个叫做 Rubydoc.info 的网站,里面存放着各式各样的 Gem 的语法,以及设定,需要什麽样的 arguments 甚至是 Github 的连接都帮你设计好了,你只需要找你想要的资料即可!
整个搜寻的流程会是:
rspec -> rspec-expections -> 点击 configuration
映入眼帘的会是:
这边就会是官方提供的 API 让你去设定的文件,内容都描述的蛮详细的!
不论你想要改颜色,设定语法等等,滚动到下方都有更范例或是连结,非常实用。
所以同理,绿色框框的则是 rspec-mocks
的设定档,依循着同样的逻辑,也可以找到属於 mocks 的 API 喔!
从 50 行开始,就是一些和 Gem 不相关的设定,比较像是使用的体验,或是一些特殊的小功能!
在红色框框处,我们能看到他会对某一种设定进行说明,以及用法!
往後的每一个区块都会是 RSpec 推荐给我们的设定,我们可以斟酌使用,这边就示范一下加入红色框框处的设定会长什麽样子!
其他的部分就靠大家自己玩玩看罗~
RSpec 的 Out Put 有分成预设以及稍微正式一点的模式
在上面的范例中,我有在 command line 後方加入 --format doc
的指令,就是为了让格式看起来有被箝套的效果,这样方便我能够轻松的了解哪个 example 是在哪里 context 之下 ( 这边听不懂 example context 等等,很正常,我们马上就会学到 )
我放上图片让大家看一下预设以及箝套效果的不同:
预设版本 ( 只有绿灯 ):
箝套版本 ( 包含叙述的结构 ):
test-configure 是最外层
would be focus and test 是被测试的范例的叙述
现在教大家如何改变自己的 Out Put 效果,然後不使用 command line。
还记得 spec_helper.rb
是我们拿来设定整个 RSpec 的档案,仔细看的话,会找到关於文字格式的叙述,也就是我们要的 Out Put 效果!
在 spec_helper.rb
中加入这一行 ( 他其实就在下面,可以复制上来用就好 )
接着你就算不加入 --formate doc
也可以直接印出易懂的 Out Put 效果罗!
今天带大家认识了基本的 RSpec 档案结构,以及里面的东西是什麽?该去哪里找文件等等!
现在已经对於 RSpec 有最初初初初初步的认识了,明天我们将会谈谈什麽测试驱动开发,以及他对於 RSpec 的价值在哪里?
>>: [Android Studio 30天自我挑战] TableLayout元件对齐方式
前言 随着网路逐渐普及,越来越多人选择'网购',而网购中最後结帐的部分极为重要。 今天要来讲讲:离线...
表单 原本介绍的标签都比较属於呈现给使用者 但是今天要介绍的表单呢就不仅是单单呈现而已 因为他会将使...
上一篇介绍了Hashmat the brave warrior,这题只需要输入两个数字,并让两个数字...
tags: JavaScript 「如果肚子饿了,就吃香蕉」--流程判断逻辑 最简单的流程控制,就是...
图 22-1: SinoPac 信用卡设定页面 在昨天已经替信用卡付款方式的设定页面规划了四个设定...