快速业务通道

跨越边界: 在集成框架中进行测试,第1部分 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-16
t; create database trails_development; Query OK, 1 row affected (0.00 sec) mysql> create database trails_test; Query OK, 1 row affected (0.00 sec)

然后编辑 config/database.yml 中的配置,以反映数据库的优先选择。我的配置看起来像这样:

清单 6. 将数据库适配器添加到配置中

development:   adapter: mysql   database: trails_development   username: root   password:   host: localhost test:   adapter: mysql   database: trails_test   username: root   password:   host: localhost

现在可以运行迁移,然后把应用程序剩下的部分搭建(scaffold)在一起:

清单 7. 迁移和搭建

> rake migrate ...results deleted... > script/generate scaffold Trail Trails ...results deleted...    create app/views/trails    ...results deleted...    create app/views/trails/_form.rhtml    create app/views/trails/list.rhtml    create app/views/trails/show.rhtml    create app/views/trails/new.rhtml    create app/views/trails/edit.rhtml    create app/controllers/trails_controller.rb    create test/functional/trails_controller_test.rb    ...results deleted...

再次注意,Rails 已经为您创建了测试用例。框架不仅为这个简单的小程序生成了视图和控制器,而 且还生成了有助于测试用户界面的功能性测试。

跨越边界: 在集成框架中进行测试,第1部分(4)

时间:2011-07-25 IBM Bruce Tate

对 Rails 应用程序进行单元测试

现在是运行一些测试的时候了。请看第一个测试,它已经在 test/unit/trail_test.rb 中写好了:

清单 8. 第一个测试

require File.dirname(__FILE__) + ''/../test_helper'' class TrailTest < Test::Unit::TestCase   fixtures :trails   # Replace this with your real tests.   def test_truth     assert true   end end

确实,这个测试用例算不了什么,但您可以从中看出如何构架测试代码,而且自己的测试用例的模板 也已经就位。请运行测试,如清单 9 所示(包括结果):

清单 9. 运行第一个测试

> ruby test/unit/trail_test.rb    Loaded suite test/unit/trail_test    Started    EE    Finished in 0.027314 seconds.     1) Error:    test_truth(TrailTest):    ActiveRecord::StatementInvalid: Mysql::Error: #42S02Table     ''trails_test.trails'' doesn''t exist: DELETE FROM trails ...results deleted...

测试用例失败,但是请看输出。第一行执行测试。第三行 EE 显示测试的结果。如果测试用例通过, 会得到 “.” 字符。如果测试用例产生错误,会看到 E。如果某个断言不是 true,那么将看到 F。接下 来,可以看到所请求的全部测试都将完成,以及完成这些测试需要的时间。最后,将看到每个失败的详细 原因。在这个示例中没有表,这是有一定原因的,因为在测试数据库中还没有创建任何表。通过将开发方 案复制到测试环境,再重新运行测试,可以修复错误,如清单 10 所示:

清单 10. 复制方案,重新运行测试

> rake clone_schema_to_test     (in /Users/batate/rails/trails) > ruby test/unit/trail_test.rb    Loaded suite test/unit/trail_test    Started    .    Finished in 0.038578 seconds.    1 tests, 1 assertions, 0 failures, 0 errors

这样更好。但是测试还是太简单,所以是构建一个真正的测试用例的时候了。请添加下面这个新测试 用例 test_truth,如清单 11 所示:

清单 11. 添加测试用例

def test_truth

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号