rspec實踐一 從零開始

2021-08-30 09:34:14 字數 1208 閱讀 3021

關於利用rspec的文章感覺蠻少的,準備寫乙個簡潔的rspec 實踐心得,從零開始,一步步深入探索

順便說幾句關於bdd的看法,感覺這種開發方式還是很靠譜的,個人認為傳統的tdd開發太乏味,讓人感覺在浪費時間,而且,tdd開發出的東西,雖然功能上可以保證正確性,但站在產品的角度上,結果往往與客戶的期望相去甚遠,二者最大的不同是,bdd的目的是不僅僅在於檢驗結果的正確性,還有就是讓測試用例描述需求成為可能,這樣的話,寫測試用例的過程可以讓程式設計師逐步的了解需求,也就是明白自己到底需要做出什麼樣的產品

gem install rspec

gem install rspec-rails

rspec-rails是rspec的rails擴充套件庫,作用無非是簡化生成測試骨架以及執行測試用例

控制器ruby script/generate rspec_controller dog bark fetch

後面跟的是試**件的名字

模型ruby script/generate rspec_model user

自動生成的**如下

require 'spec_helper'

describe user do

before(:each) do

@valid_attributes =

endit "should create a new instance given valid attributes" do

user.create!(@valid_attributes)

endend

需要說明的是describe方法生成了spec::example::examplegroup的乙個子類,it方法生成了should_×××××的方法,也就是describe方法生成了乙個樣例組,而通過it生成了乙個個都樣例。

spec::mock

在乙個系統中,會有很多物件**其他的物件,那麼在測試這個物件的時候,如果它所需要**的物件還沒有開發出來,那麼就需要模擬一些它所**的物件。

method stubs 和 messsage expectations 是方法級的概念,而 test doubles 或者 test-specific extensions則是物件級的概念。

test double是一種在樣例中可以代表其他物件的物件,根據它的用法,類似於mocks, stubs, fakes  ,imposters等等,需要注意的是mock是物件級,而stub是方法級的。

待續

從零開始的 IoT 實踐之路

原文 it easier to get started with iot物聯網 iot 一直被認為是 下乙個工業革命 從通訊 娛樂 醫療到智慧型化生活無處不在,也許你正在思考成為一名 iot 開發者,但從零開始的探索之路可能並不像你想象的那麼容易。伴隨著新功能和物的出現以及舊協議逐步在框架中的更新迭...

PyTorch從零開始(一)

之前嘗試過tenano,caffe,keras,tensorflow,這幾個我個人最喜歡的還是tensorflow,因為是google出品,技術崇拜,文件很全,並且我看的deepmind的 都是用的tensorflow框架。之前看的目標檢測的 一般用caffe的很多,人臉識別方面也是caffe是主流...

SpringBoot從零開始(一)

上來先看的這篇部落格 idea新建乙個springboot mybatis mysql專案,以及遇到的問題分享。在其中第9步自動生成的過程中,出現了錯誤如下 the server time zone value is unrecognized or represents more than one ...