《基础 Ruby on Rails》的示例程序asagao与Rails2.2相适应
综合测试和rak
到上一章为止,asagao 的单元测试和功能测试全部都通过了。
这次,来进行综合测试吧。
> rake test:integration
(省略)
1) Failure:
test_linked(InnerLinksTest)
[./test/integration/inner_links_test.rb:22:in `visit'
./test/integration/inner_links_test.rb:28:in `visit'
./test/integration/inner_links_test.rb:25:in `each'
./test/integration/inner_links_test.rb:25:in `visit'
./test/integration/inner_links_test.rb:13:in `test_linked'
/usr/lib/ruby/gems/1.8/gems/activesupport-2.2.2/lib/active_support/testing/setup_and_teardown.rb:60:in `__send__'
/usr/lib/ruby/gems/1.8/gems/activesupport-2.2.2/lib/active_support/testing/setup_and_teardown.rb:60:in `run'
/usr/lib/ruby/gems/1.8/gems/actionpack-2.2.2/lib/action_controller/integration.rb:597:in `run']:
A wrong or broken path </account/show> was found within the page </>.
Expected response to be a <:success>, but was <404>
2 tests, 37 assertions, 1 failures, 0 errors
rake aborted!
Command failed with status (1): [/usr/bin/ruby -Ilib:test "/usr/lib/ruby/ge...]
(See full trace by running task with --trace)
对于一直关注这个连载的朋友来说这个很简单的吧。
正如在单例资源里说明的一样,原因就是 Rails2.0 开始控制台名称规则有少许变化。
错误信息显示:“首页有到 /account/show 的链接,但是出现错误或已损坏”。
但是,我不知道这条路径出现在首页的什么地方。
怎么做才好呢。
通常情况是启动应用程序后,用浏览器打开首页,获取源代码,但这里试一下 rak 吧。
rak 是用 Ruby 写的像 grep 一样的工具。
rak 通过 gem 安装。
> sudo gem install rak
rak 就是从某个目录下面的文件群中生成包含特定模式的行的列表。
找出含有 account 字符串的行的话,会发现有点特别的地方。
> rak account app/views app/views/layouts/application.rhtml 16| <td id="account"> 17| <%= render :partial => 'shared/account' %> app/views/shared/_account.rhtml 2| <% unless params[:controller] == 'account' -%> 4| :controller => '/account', :action => 'show' %> |
太棒了!
Rak 将输出一个带颜色的容易分辨的结果。
但是,想在 Windows 表示颜色时,有必要通过 gem 安装 win32console 包。
app/views/shared/_account.rhtml 的 2-5 行做如下修改。
<% unless params[:controller] == 'accounts' -%>
<%= link_to @current_user.full_name + '帐户',
:controller => '/accounts', :action => 'show' %> |
<% end -%>
执行 test:integration 任务的话……
2 tests, 66 assertions, 0 failures, 0 errors
太完美了。
从下一章开始,为了使 asagao 更适应 rails2.2 ,让我们再一次看看源代码吧。
(2008/12/22)
- 前言
- 功能测试开头部分的修改等 (2008/12/01)
- rake rails:update (2008/12/15)
- Cookie Store (2008/12/16)
- 分页 (2008/12/17)
- blog_entries 控制台的修改 (2008/12/20)
- 单例资源 (2008/12/21)
- 一口气通过所有功能测试 (2008/12/21)
- 综合测试和rak (2008/12/22)
- 国际化(i18n)的第一步 (2008/12/26)
- 基于Cookie的区域的切换 (2009/01/04)
- ActiveRecord 模型的字段名的国际化 (2009/01/08)
- 错误信息的国际化(1) (2009/01/09)
- 错误信息的国际化(2) (2009/01/10)
- 错误信息的国际化(3) (2009/01/17)
- 错误信息的国际化(4) (2009/01/24)

