Debugging Hints

本文介绍Rails框架下多种调试方法,包括单元测试与功能性测试、使用控制台进行交互式调试、利用日志文件追踪问题以及设置断点进行精细调试。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

首先想到的和广泛使用的是,写测试代码!rails 使得写unit test 和functional test
变得容易。使用了它们,你将发现bug 的出现率会显著减少。测试是廉价的保单。
测试会告诉你哪些东西起作用,哪些不起作用,有助于你隔离有问题的代码。但有时,
出现问题的原因不是非常明显。
如果问题出现在一个model 中,你可能想在web 程序外来跟踪相关的类。script/console
把你的rails 程序带到irb 的会话中,让你有机会测试方法。下面是当我们使用控制台来更新
一个产品的单价时的会话。
depot> ruby script/console
Loading development environment.
irb(main):001:0> pr = Product.find(:first)
=> #<Product:0x248acd0 @attributes={"image_url"=>"/images/sk..."
irb(main):002:0> pr.price
=> 29.95
irb(main):003:0> pr.price = 34.95
=> 34.95
irb(main):004:0> pr.save
=> true
日志和跟踪是动态理解复杂的应用程序的最好方式。你会发现development 的日志文件
中有很多信息。当不希望的事情发生时,它或许是你想看第一个地方。它也写入web 服务日
志。如果你在开发环境中使用了WEBric 的话,这将在使用script/server 命令的窗口滚动。
你也可以添加你自已的信息到前面描述的Logger 对象中。有时候日志文件很忙,它很难
找到你添加信息。在这些情况下,如果你使用WEBrick,的话将你出现WEBrick 控制台上信
息写入到STDERR 中。
如果一个页面显示警告信息,你可能想转储对象。Debug() helper 方法可用于这种情况。
它格式化对象并确保其内容是有效的HTML。
<h3>Your Order</h3>
<%= debug(@order) %>
<div id="ordersummary">
. . .
</div>
最后,所有问题都似乎得不到修正,你可以在你运行应用程序时,使用调试器。通常这
只能在开发环境下有效。
要使用断点:
1、在你想停下之处插入方法breakpoint( )。你可以像这个方法传递一个字符串—想区
别的信息。
2、在控制台上,导航你应用程序的基本目录和命令入口。
depot> ruby script/breakpointer
No connection to breakpoint service at
druby://localhost:42531 (DRb::DRbConnError)
Tries to connect will be made every 2 seconds...
不要为没有连接消息烦恼—它只意味着你的断言并没有被击中。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值