亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

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

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

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

台中县| 建昌县| 天镇县| 英吉沙县| 万全县| 云阳县| 彭山县| 陆河县| 蓬安县| 武穴市| 穆棱市| 秀山| 松潘县| 信丰县| 长乐市| 平山县| 雅江县| 高雄市| 托克托县| 辽阳县| 旺苍县| 双鸭山市| 靖西县| 河曲县| 庆元县| 抚州市| 始兴县| 册亨县| 汕头市| 浦县| 洪江市| 遂平县| 石棉县| 巴塘县| 璧山县| 南陵县| 图片| 当阳市| 富阳市| 新丰县| 屏东市|