91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

學習札記——Rspec+factory_girl進行復雜模型測試

發布時間:2020-07-20 14:34:14 來源:網絡 閱讀:559 作者:JackSongBlack 欄目:軟件技術

本文主要介紹怎么使用Rspec+factory_girl進行復雜模型測試,

首先介紹下本人使用的模型機構
class Node
belongs_to :parent,:class_name =>Node
has_many :children,:class_name =>Node
                :foreign_key =>:parent_id
end

end
可以看出,我使用的是一個自關聯表,通過自己:parent_id這個鍵將本表自己關聯起來,
現在介紹怎么用factory_girl模擬這樣的模擬結構
首先介紹從葉子結點像root結點一個一對一的模型結構
代碼如下
FactoryGirl.define do
factory :node do
title "XXXXX"
factory :node_leaf ,:class => :node do
association :parent,:factory =>:node
end
end

通過association這個值,我們將node與node_leaf做成一對一關聯
然后我們再構建root結點向leaf結點一個一對多的情況
FactoryGirl.define do
factory :node do
title "XXXXX"
factory :node_root,:class => :node do
after_create do |node|
node.children <<FactoryGirl.create(:node,:parent => node)
node.children <<FactoryGirl.create(:node,:parent => node)
node.children <<FactoryGirl.create(:node,:parent => node)
end
end
end
end
然后我們再下Rspec代碼中創建測試模型
Factory.build(:node_root) #這種方式不會被保存在數據庫中
Factory.create(:node_leaf)#這種方式其實就多了一個SAVE動作
如果想查找可以下一結點用關鍵字查詢比如
Factory.create(:node_root).children.find_by_title("1")

也可以使用:each這個選項遍歷整個模型比如
Factory.create(:node_root).children.each do |node|
node.title
end

參考資料
https://github.com/thoughtbot/factory_girl/issues/202關于一對多的關系
http://www.cnblogs.com/ToDoToTry/archive/2011/09/10/2173382.htmlfactory_girl 測試
http://ruby-china.org/topics/3777很不錯關于factory_girl的介紹,很全面


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

临夏市| 中牟县| 瑞金市| 佛山市| 襄汾县| 勃利县| 侯马市| 通江县| 益阳市| 寿阳县| 翁源县| 汽车| 南澳县| 岱山县| 宁明县| 华坪县| 永康市| 瓮安县| 故城县| 星子县| 黎川县| 金乡县| 尚义县| 新建县| 大连市| 安泽县| 玛多县| 安宁市| 万山特区| 广饶县| 滨海县| 东丽区| 阜新市| 岑巩县| 鄂伦春自治旗| 淳安县| 府谷县| 祁阳县| 奇台县| 邵武市| 仁怀市|