千家信息网

学习札记——Rspec+factory_girl进行复杂模型测试

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,本文主要介绍怎么使用Rspec+factory_girl进行复杂模型测试,首先介绍下本人使用的模型机构class Nodebelongs_to :parent,:class_name =>Nodeha
千家信息网最后更新 2026年11月01日学习札记——Rspec+factory_girl进行复杂模型测试

本文主要介绍怎么使用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 doassociation :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 < node)
node.children < node)
node.children < 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的介绍,很全面


模型 结点 测试 关联 一对一 代码 方式 结构 复杂 不错 关键 关键字 动作 参考资料 叶子 情况 数据 数据库 机构 资料 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 湖南永感互联网科技有限公司 科技与互联网 互联网科技公司税收优惠 上海挚品互联网科技 苏州大垚互联网科技 深圳艾佳互联网科技 天扬科技互联网广告 互联网科技有限公司 翻译 哈尔滨秒房互联网科技有限公司 北京大学互联网科技怎么样 创业天下互联网科技有限公司 厦门比较好的科技互联网公司 河南猎农互联网科技有限公司 崇明区互联网教育科技售后服务 晋城互联网科技 互联网第三次科技革命特征 江苏互联网智能科技软件 工业互联网科技成果转化 全球科技与互联网公司市值变化 互联网科技博主张洲 互联网科技公司的优势 互联网科技论文 科技互联网公司logo 上游互联网科技 四个字互联网科技公司取名 剑昆互联网络科技有限公司临桂 崇明区互联网教育科技诚信经营 宜昌元轩互联网科技有限公司 互联网科技公司营业执照怎么办理 新氧科技和美国互联网有关系吗
0