跨越边界: 在集成框架中进行测试,第2部分 - 编程入门网
culty => "Medium"}
assert_response :redirect
assert_redirected_to :action => ''list''
assert_equal num_trails + 1, Trail.count
end
trails_controller_test.rb 中自动生成的这个测试用例的版本包括 post :create, :trail => {},它调用 create 方法,空哈希表表示新路线。这个代码应当创建一条新路线,该路线有一个所有属性 都为 null 的 Trail 对象。清单 6 修改了代码,以传递代表路线属性的哈希映射表。这个哈希映射表接 口对于在测试框架中指定对象而言非常有用。然后,测试用例用 Trail 模型确保创建了新路线。 清单 5 和清单 6 中的测试用例不像第 1 部分中的单元测试那样处理每个细节。但是它们可以保证调 用了业务逻辑,保证控制器逻辑没有检测到任何错误,并保证得到了正确的 HTTP 响应。 Rails 还提供了另一种测试用例:集成测试。 集成测试 功能测试用于测试单一特性,而集成测试可能触及许多不同的页面。例如,购物车单元测试可以测试 出您可能通过模型 API 将一件商品添加到购物车中。购物车的功能测试可以确保您能够通过登录某一 Web 页面将商品添加到购物车中。而集成测试则可以保证能够登录、添加商品和结账。 在 “Running Your Rails App Headless”(请参阅 参考资料)中,Mike Clark(Rails 社区领先的 测试专家之一)详细介绍了集成测试框架。开始进行讨论时,他介绍了如何运行没有 Web 页面的(即 headless)应用程序。这项功能使得搜集编写集成测试的足够信息变得更容易。从 Rails 1.1 开始,可 以直接从控制台调用控制器。不需要浏览器,只要调用 app 对象的 put 和 get 方法,就可以访问应用 程序的 Web 页面。 请启动控制台,键入清单 7 中的命令,通过 HTTP get 发出列表动作: 清单 7. 从控制台使用 Rails 集成测试框架
在清单 7 中,从控制台以两种形式发送请求,调用 trails 控制器的 list 动作。然后,通过与正则 表达式 /Emma Long/ 匹配,可以看到生成的 HTML 页面中包含 Emma Long(一条路线)。您可以继续运 行 post 和 get: 清单 8. 通过 post 实现删除
跨越边界: 在集成框架中进行测试,第2部分(5)时间:2011-07-25 IBM Bruce Tate通过控制台集成测试 API,现在有了构建集成测试的足够信息。请使用 script/generate integration_test DestroyAndShow 生成一个集成测试,并将它编辑成清单 9 那样: 清单 9. test/integration/destroy_and_show.rb
|
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |