中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

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

學習札記——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

萍乡市| 大宁县| 贡觉县| 建宁县| 夹江县| 洱源县| 信阳市| 南和县| 南汇区| 梁河县| 扬中市| 鲁甸县| 巧家县| 新和县| 塘沽区| 白玉县| 普格县| 固始县| 兴安县| 都安| 龙胜| 清远市| 天门市| 潢川县| 罗甸县| 黄梅县| 隆尧县| 高阳县| 宁远县| 罗城| 永善县| 广元市| 呼和浩特市| 正阳县| 长海县| 新蔡县| 乡城县| 三江| 洛扎县| 海宁市| 白沙|