rspec(2) - model

沒有測(cè)試的代碼就是耍流氓

  1. rspec(1) - summary
  2. specs(2) - model
  3. specs(3) - controller
  4. specs(4) - request
  5. specs(5) - mock
  6. [specs(6) - mailer]
  7. [specs(7) - view]
  8. [specs(8) - routing]
  9. [specs(9) - helper]
  10. [specs(10) - factory-girl]
  11. [specs(11) - fake other gems]
  12. [specs(12) - sidekiq]
  13. [specs(13) - db migration]
  14. [specs(14) - timecop]
  15. [specs(15) - jenkins]

models specs

models的測(cè)試默認(rèn)位于spec/models目錄,任何設(shè)置:type => :model 當(dāng)將被當(dāng)做model specs代碼。

創(chuàng)建User模型

rails generate model user name:string sex:integer age:integer

生成model測(cè)試(以User為例)

rails generate rspec:model user

遷移

bundle exec rake db:migrate RAILS_ENV=test
# or rails db:mirate RAILS_ENV=test

create測(cè)試(spec/models/user_spec.rb)

require "rails_helper"
RSpec.describe User, :type => :model do
    it "create" do
        user = User.create!(:name=>"zouqilin", :sex=>1, :age=>26)
        expect(User.first).to eq(user)
    end
end

find測(cè)試

require "rails_helper"
RSpec.describe User, :type => :model do
    before("find") do
          @user = User.create!(:name=>"zouqilin", :sex=>1, :age=>26)
    end
    it "find a user" do
        expect(User.find_by_name("zouqilin")).to eq(@user)
    end

    it "not found" do
          expect(User.find_by_name("zou")).to eq(nil)
    end
end

where測(cè)試

require "rails_helper"
RSpec.describe User, :type => :model do
    before("find") do
          @user = User.create!(:name=>"zouqilin", :sex=>1, :age=>26)
    end
    it "find a user" do
        expect(User.where(name: "zouqilin")).to eq([@user])
    end

    it "not found" do
          expect(User.where(name: "zou")).to eq([nil])
    end
end

update測(cè)試

  context "update" do
    before("update") do
      @user = User.create!(:name=>"zouqilin", :sex=>1, :age=>26)
    end

    it "update user age" do
      @user.age = 18
      @user.save
      expect(User.find(@user.id).age).to eq(18)
    end
  end

destroy測(cè)試

  context "delete" do
    before("delete") do
      @user = User.create!(:name=>"zouqilin", :sex=>1, :age=>26)
    end

    it "delete user" do
      @user.destroy
      expect(User.where(id: @user.id)).to eq([])
    end
  end

關(guān)聯(lián)模型

rails new model post title:string content:text 
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Awesome Ruby Toolbox Awesome A collection of awesome Ruby...
    debbbbie閱讀 3,093評(píng)論 0 3
  • 這是一個(gè)簡(jiǎn)單的關(guān)于Rails Rspec的簡(jiǎn)單的介紹 1 安裝Rspec 在Rails的配置文件Gemfile配置...
    AQ王浩閱讀 27,193評(píng)論 6 28
  • 沒有測(cè)試的代碼就是耍流氓 rspec(1) - summary specs(2) - model specs(3)...
    auguszou閱讀 473評(píng)論 0 0
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,680評(píng)論 19 139
  • 2017.06.02 夜 廣州 雷雨 最近帶著我的小白喵回到了熟悉的廣州生活。兜兜轉(zhuǎn)轉(zhuǎn)2年,最終也是從深圳回到廣州...
    n只熊閱讀 684評(píng)論 0 1

友情鏈接更多精彩內(nèi)容