`

用RSPEC测试路由

阅读更多
基本
require "spec_helper"

describe "routes for Widgets" do
  it "routes /widgets to the widgets controller" do
    { :get => "/widgets" }.
      should route_to(:controller => "widgets", :action => "index")
  end
end

{ :delete => "/accounts/37" }.should_not be_routable

require "spec_helper"

describe "routes for Widgets" do
  it "routes /widgets to the widgets controller" do
    get("/widgets").
      should route_to("widgets#index")
  end
end


#路由如下
match '/:city/*destination' => 'cities#myaction', :constraints => {:city => /#{City.all.map{|c|c.slug}.join('|')}/}

describe "routing" do
  before(:each) do
    @mock_city = mock_model(City, :id => 42, :slug => 'some-city')
    City.stub!(:find_by_slug => @mock_city, :all => [@mock_city])
    MyApp::Application.reload_routes!
  end

  it "recognizes and generates a route for city specific paths" do
    { :get => '/some-city/some/path' }.should route_to({:controller => "cities", :action => "myaction", :destination => 'some/path', :city => 'some-city'})
  end

  it "rejects city paths for cities that don't exist in the DB" do
    { :get => '/some-bad-city/some/path' }.should_not be_routable
  end
end
分享到:
评论
1 楼 ruby_windy 2012-03-29  
good.

相关推荐

    使用RSpec 测试Rails 程序.pdf

    ### 使用RSpec 测试Rails 程序的知识点总结 #### 一、RSpec与Rails结合的基础概念 **RSpec**(RSpec is not a unit testing framework)是一种为Ruby编程语言设计的行为驱动开发(BDD)框架,而**Rails**是基于...

    rspec_receitas:几个RSpec测试配方

    **rspec_receitas:几个RSpec测试配方** `rspec_receitas` 是一个专注于RSpec测试框架的项目,它提供了一系列测试示例,用于帮助开发者更好地理解和应用RSpec在Ruby on Rails 5应用程序中的实践。RSpec是Ruby社区...

    sample_sinatra:Ruby CLI 应用程序通过 Rspec 测试移植到 Sinatra

    "通过 Rspec 测试" 表明项目采用 RSpec 这个 Ruby 的行为驱动开发(BDD)测试框架来确保代码质量。 **描述解析:** 描述中提到,该应用程序实现了 CRUD(创建、读取、更新、删除)操作,这是任何数据管理应用的...

    RSepc rails 测试框架介绍

    此外,FactoryGirl(现更名为 FactoryBot)是 RSpec 中常用的测试数据生成工具,可以方便地创建复杂关联的对象,如在 `spec/factories/products.rb` 中定义产品工厂。 例如,创建一个产品工厂: ```ruby ...

    workout-app:使用rspec的Rails课程的健身应用程序

    总的来说,这个课程将带领学习者深入理解如何使用Ruby on Rails进行BDD实践,通过编写RSpec测试确保代码质量,并利用Capybara进行功能测试,保证用户界面的正确性。同时,对于CoffeeScript的使用,可以提升学员对...

    Ruby on Rails Guides_ A Guide to Testing Rails Applications.pdf

    测试应用的路由配置同样重要,该指南提供了如何测试路由的方法,确保应用中的URL路径与预期一致。 十、测试邮件发送器 邮件发送是许多应用的重要功能,该部分专门讲解了如何测试邮件发送器,确保邮件能够按预期...

    路由嵌套资源实验室v-000

    您可以使用rspec命令运行测试。 记住要rake db:seed来设置入门歌曲库! 创建嵌套的资源路由以显示某个艺术家的所有歌曲( /artists/1/songs )和该艺术家的个别歌曲( /artists/1/songs/1 )。 将嵌套的歌曲路由...

    Ruby-社区驱动的RubyonRails4风格指南

    1. 使用RSpec进行行为驱动开发(BDD)测试,配合FactoryBot创建测试数据。 2. 每个模型应有对应的模型测试,每个控制器应有对应的控制器测试。 3. 测试应覆盖所有关键功能,并保持测试代码简洁明了。 六、其他最佳...

    Ruby on Rails源代码

    在Ruby on Rails的源代码中,我们可以深入理解其内部工作原理,包括路由、数据库交互(ActiveRecord)、模板引擎(ERB或Haml)、测试工具(Rspec或Minitest)等核心组件。以下是一些关键知识点的详细解释: 1. **...

    Ruby on Rails实践

    总的来说,Ruby on Rails实践涉及的知识点包括但不限于:Ruby语言基础、Rails框架结构、MVC模式、ActiveRecord、路由、测试驱动开发、插件和gem使用、以及部署策略。通过学习和实践,开发者能够快速构建功能丰富的...

    Ruby-WebValve是一个用于定义和注册HTTP服务的假实现

    5. **测试集成**:WebValve与常见的测试框架如RSpec、Minitest等兼容良好,可以方便地集成到测试用例中,确保服务接口的正确性。 6. **性能优化**:由于WebValve运行在内存中,因此它的响应速度通常比调用远程服务...

    Rails相关电子书汇总二

    5. **Rails测试**:包括单元测试、集成测试、功能测试和性能测试,使用RSpec、Minitest等工具进行测试驱动开发。 6. **Rails gems和插件**:了解如何利用社区创建的gem扩展Rails的功能,如Devise用于身份验证,...

    Ruby+on+Rails实践

    此外,Rails提供了丰富的内置功能和库,如路由系统,自动化的测试工具如RSpec和Capybara,以及ActionMailer用于发送电子邮件。还有Asset Pipeline,它管理应用的CSS、JavaScript和图片资源,支持Sass、CoffeeScript...

    Rbuy for Rails源代码

    7. **spec/**:测试文件,通常使用RSpec或其他测试框架编写。 8. **public/**:静态资源,如CSS、JavaScript和图片。 9. **vendor/**:第三方代码或库。 10. **README.md**:项目介绍和指南。 **知识点详解:** 1....

    rail api文档

    7. **测试与调试**:Rails强调测试驱动开发,文档会讲解测试框架RSpec和MiniTest的用法,以及如何进行单元测试、集成测试和功能测试。此外,还包括调试工具如byebug的使用。 8. **配置与部署**:Rails的应用可以...

    apicurious:用于演示 API 控制器测试的示例 Rails 应用程序

    测试 API 控制器时,通常会使用像 RSpec 这样的行为驱动开发(BDD)框架,以及像 FactoryBot 或 FactoryGirl(已被弃用)这样的工厂女孩库来创建测试数据。Rspec 允许我们编写清晰、可读性强的断言,确保控制器方法...

    Agile Web Development with Rails 翻译

    `rspec-rails`和`capybara`是常用的测试库,它们帮助开发者编写易于理解和维护的测试代码。 总的来说,《敏捷Web开发与Rails》涵盖的主题广泛,从基础的路由和控制器,到复杂的模型关联和数据库优化,再到测试和...

    api

    - `spec`:rspec测试代码所在的位置,每个`spec`文件对应`lib`中的一个模块或类,用以验证其功能。 - `Gemfile`:Ruby项目的依赖管理文件,列出了项目所需的gem包,包括rspec本身和其他可能的库。 - `README.md`:...

    namespace-routes-lab-v-000

    可以使用rspec运行测试。 注意:由于我们是在已经有测试的现有项目上构建新功能,因此,工作的一部分是确保在开始时通过的测试在完成后仍然通过! 创建一个Preference模型,该模型将存储该应用程序的首选项。 它...

    namespaced-routes-lab-nyc-web-102819

    可以使用rspec运行测试。 注意:由于我们是在已经有测试的现有项目上构建新功能,因此,工作的一部分就是确保在开始时通过的测试在完成后仍然通过! 创建一个Preference模型,该模型将存储该应用程序的首选项。 ...

Global site tag (gtag.js) - Google Analytics