RSpec-Rails (基礎篇)(1): 基本用法


RSpec-Rails教學(基礎篇)全部內容

概要

  1. 如何安裝RSpec
  2. 如何用單一檔案執行RSpec
  3. describe及it用法簡介
  4. 兩個使用案例

參考資料

http狀態代碼

筆記

版本

Ruby版本: 2.1.2
RSpec版本: 3.2.0

安裝

$ gem install rspec
$ gem install httpclient

簡易數學

require 'rspec'

describe "Math" do
  it 'do basic math' do
    expect(1+1).to eq(2)
  end
end

執行

$ rspec basic_spec.rb

薪水分類

require 'rspec'

class Divider
  def salary_divide(salary)
    case salary
    when 0..300000
      "年收入30萬以下"
    when 300000..600000
      "年收入30~60萬之間"
    when 600000..900000
      "年收入60~90萬之間"
    else 
      "年收入90萬以上"
    end
  end
end

describe "salary" do
  it 'is categorized successfully based on input' do
    expect(Divider.new.salary_divide(250000)).to eq("年收入30萬以下")
    expect(Divider.new.salary_divide(290000)).to eq("年收入30萬以下")
    expect(Divider.new.salary_divide(358000)).to eq("年收入30~60萬之間")
    expect(Divider.new.salary_divide(540000)).to eq("年收入30~60萬之間")
    expect(Divider.new.salary_divide(744000)).to eq("年收入60~90萬之間")
    expect(Divider.new.salary_divide(950000)).to eq("年收入90萬以上")
  end
end

確認連線正常

require 'rspec'
require 'httpclient'

describe "connections" do
  it 'are stable' do
    expect(HTTPClient.new.get("http://rspec.info/").status).to eq 200
    expect(HTTPClient.new.get("http://rspec.info/").body).to include("Behaviour Driven Development in Ruby with RSpec")
    expect(HTTPClient.new.get("https://evernote.com/intl/zh-tw/").status).to eq 200
    expect(HTTPClient.new.get("https://www.linode.com/").status).to eq 200
  end
end