博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
单元测试调试之传参篇
阅读量:6567 次
发布时间:2019-06-24

本文共 1644 字,大约阅读时间需要 5 分钟。

文章是从我的个人博客上粘贴过来的,

大家也可以访问 www.iwangzheng.com

 

今天有两个单元测试一直跑不通,究其原因是没搞清楚单元测试的传参的概念,之前大师强调过的,今天pp又讲解了一遍。以第一个单元测试的测试模块的25行为例

25 put :modify, :id => @list.id, :rankinglist => {:title => new_title}

这个报错是因为我写成了list =>{:title => new_title},但是被测模块里是没有这个参数的,想知道有啥就看被测模块 params里面的内容啊,有几个传几个就行。

这个巧合的是我的前端代码是这样的

<%=  text_field_tag  'title' ,@rankinglist.title  %>由于text_field_tag里的内容在html里解析为id=‘title’,name ='title',所以在25行里没有:title也是ok的

23def modify

24 @rankinglist.title = params[:title]
25 if @rankinglist.update_attributes(params[:rankinglist])
26 redirect_to edit_tv_i_rankinglist_path(:id => @rankinglist.id) , :notice => '操作成功'
27 else
28 render :action => "edit"
29 end
30 end

 

对应的单元测试

23it 'should put update' do

24 new_title = 'test'
25 put :modify, :id => @list.id, :rankinglist => {:title => new_title}
26 @list.reload.title.should == new_title
27 end

 

再来看第二个写错的单元测试

5def index

6 @module_type = params[:module_type]
7 @rankinglists = CmsTvRankingList.where('state = ? ', 1)
8 @rankinglist = CmsTvRankingList.find_by_id(params[:rankinglist_id]) || @rankinglists.try(:first)
9 @modules = CmsTvRankingListModule.where('rankinglist_type = ? ', @rankinglist.id).order(:position)
10 end

对应的单元测试

5before do

6 admin_login
7 request.env["HTTP_REFERER"] = root_path
8 @rankinglist = CmsTvRankingList.create(:title =>'5' ,:state => '1')
9 @module = CmsTvRankingListModule.create(:title => '测试', :rankinglist_type => 5)
10 end
11 it 'should get index' do
12 get :index, :rankinglist_id =>'1'
13 response.should be_success
14 end

错在哪里呢,由于这个排行榜子菜单是在排行榜菜单内部的,所以是需要先保证被测的第8行是有值的,所以需要写上测试里的第8行,当然,测试的12行后半句也是必要的。

转载于:https://www.cnblogs.com/iwangzheng/p/3624080.html

你可能感兴趣的文章
Java类的连接与初始化 (及2013阿里初始化笔试题解析)
查看>>
unity优化笔记
查看>>
haproxy+keepalived应用实战
查看>>
linux
查看>>
Lync2013 恢复-整残之后如何重新安装
查看>>
SSO 单点登录会话管理
查看>>
jpa查询记录重复
查看>>
mysql-事物实现原理
查看>>
上下滚动播报特效
查看>>
iOS 隐藏导航栏整个视图上移闪屏问题
查看>>
12cR2 RAC+RAC+ADG ORA-16854
查看>>
数组名和数组名取地址的区别
查看>>
某企业WSUS服务实例介绍
查看>>
准IT工作者如何择师、如何学习
查看>>
redis主从复制故障转移
查看>>
2011,我的IT我的梦
查看>>
KVM虚拟化实践(一)
查看>>
First Unique Character in a String(leetcode387)
查看>>
计算机体系架构简析
查看>>
另类无法在ESXi上添加存储器故障
查看>>