使用 RSpec 來測試 App

作者: 云中布衣   分类:  数据比赛    热度: (789℃)   时间: 2015-10-6 11:00   标签: #作业  #高级软件工程    

高级软件工程HW1测试文件下载地址:http://course.trustie.net/projects/671/repository/revisions/master/show/spec

使用 RSpec 來測試 App

Created by Clemens Helm, @clemenshelm and Floor Drees, @floordrees

Translation by JuanitoFatas, @JuanitoFatas

RSpec 是 Ruby 語言的測試框架之一,使用看起來很像 Ruby 的語法,來描述 App 的行為。測試結果會輸出在終端機,所以妳也可以測試妳的閱讀技巧呢(開個玩笑)。

教練: 講講測試與行為驅動開發是什麼。

安裝 RSpec

安裝 RSpec 與所有依賴的 RubyGems:

gem install rspec

接著到終端機裡執行:

rspec --init

這條命令會在專案目錄下產生 .rspec,以及 spec 目錄下產生 spec_helper.rb

Rubyist 通常交互使用“測試”(test)與“規範”(specification)這兩個詞,這也是為什麼測試是存在 spec 目錄下。

spec 目錄建立一個 idea_spec.rb 檔案:

touch spec/models/idea_spec.rb

填入以下內容:

require 'spec_helper' require 'idea'

接著讓我們來描述一個“規範”(寫一個測試)看看:

describe Idea do it 'has a name' # your examples (tests) go here end

在終端機執行:

rspec spec/models/idea_spec.rb

會告訴你測試處於 pending 狀態,因為測試的內容還沒實作。

教練: 講講如何使用終端機的輸出來 Google 解決問題

讓我們填入具體的測試內容!

describe Idea do
  it "has a name" do # yep, you can totally use 'it'
    idea = Idea.new # creating a new idea 'instance'
    idea.name.should be_true # this is our expectation
  end
end   

啊哈!妳的第一個測試!

教練: 逐行解釋剛剛的測試

重構

剛剛那兩行其實也可以寫成一行:

describe Idea do its(:name) { should be_true } end

這看起來好多了,但背後隱藏了許多魔法。現在我們只要知道,“重構”是根據經驗把大塊程式碼轉成小塊程式碼。

教練: 講講什麼是重構

讓測試稍後再測(待辦事項)

耶!待辦事項。太棒了!一個俏皮的 RSpec 功能,讓妳可以把特定的測試標註為“待辦”(pending)。

怎麼樣把一個測試變成待辦事項呢?

沒有 doendit

it "has a name"

或是在 it 前面加上 x

describe Idea do xit "has a name" do ... end end

或者是把 it 換成 pending 也可以哦!

describe Idea do pending "has a name" do ... end end

行為驅動開發

行為驅動開發呢,通常是先想想我們想要做什麼,寫下期望會做的事(測試),接著心中想著測試,開始一步一步做出來。

我們可能會先寫 Idea Model 的測試 (touch spec/models/idea_spec.rb):

describe Idea do
  it "has a name"
    idea = Idea.new
    idea.name.should be_true
    # or, alternatively: idea.name.should == true
  end
end  

現在跑測試看看 rspec spec/models/idea_spec.rb 會告訴你。幸運的是,錯誤並不可怕,實際上還會幫助妳寫出需要的程式碼呢!

接著便可以實作 Idea Model 了...。

好,試著在之後的活動裡寫測試來檢查妳是否都做對了。

describe Attendee do it "tests everything" end

開個玩笑的啦!

Happy Testing!

教練: 講講測試有什麼優點。

原文地址:http://railsgirls.tw/testing-rspec/

56.8K

发表评论:

© 云中布衣 2015 | Driven by EMLOG  | SiteMap | RunTime: 8.36ms&RSS  | MORE  |   | TOP

文章数量【258】 评论数量【238】 稳定运行【1210天】

Visitor IP Address【54.82.73.21】

Email:ieeflsyu#outlook.com