学习札记——Rspec+factory_girl进行复杂模型测试
发表于:2025-12-01 作者:千家信息网编辑
千家信息网最后更新 2025年12月01日,本文主要介绍怎么使用Rspec+factory_girl进行复杂模型测试,首先介绍下本人使用的模型机构class Nodebelongs_to :parent,:class_name =>Nodeha
千家信息网最后更新 2025年12月01日学习札记——Rspec+factory_girl进行复杂模型测试
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的介绍,很全面
本文主要介绍怎么使用Rspec+factory_girl进行复杂模型测试,
首先介绍下本人使用的模型机构class Nodebelongs_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.children <
node.children <
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安全错误
数据库的锁怎样保障安全
规范网络行为网络安全
宽带网络技术论文
dell 服务器如何连线电脑
学生运动会成绩数据库
什么是数据库标志符
租用的华为云服务器被攻击
部落冲突9本升级数据库
数据库 实现消息队列
查看数据库表数据的命令
网络安全自查表格填写
黏土云服务器怎么刷黏土
武邑县网络安全工作培训
维护网络技术
婚庆租车软件开发
网络安全技术设计
公安机关防范网络安全的措施
怎么查看服务器响应时间
网络安全学习教程下载
2020年服务器硬盘排名
违反网络安全案例分析
网络安全中什么是副本
软件开发 岗位职责
mc我的世界服务器被炸
u盘插到esxi服务器
云霄县完绪网络技术工作室
软件开发的结构化方法中
为什么视频连接不上服务器
软件开发行业股票
NCBI与DDBJ数据库的区别
无锡软件开发工资怎么样