`
fireDragonpzy
  • 浏览: 459954 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

rspec views

阅读更多
本文为firedragonpzy原创,转载务必在明显处注明:
转载自【Softeware MyZone】原文链接: http://www.firedragonpzy.com.cn/index.php/archives/475


#coding:utf-8
require 'spec_helper'
require 'will_paginate/array'
describe "admin/roles/index" do
  before(:each) do

    @ability = Object.new
    @ability.extend(CanCan::Ability)
    controller.stub(:current_ability) { @ability }
    view.stub(:current_ability) { @ability }

    assign(:roles, Role.paginate(:page => params[:page],:per_page => 10).order("updated_at DESC"))
  end

  it "has a create link for that role inside admin" do
      @ability.can :create, Role
      render
      if Role.count > 0
          rendered.should have_selector("div") do |new_a|
            new_a.should have_selector "a",
              :href => new_admin_role_path,
              :content => "添加"
          end
      end
    end

  it "has a destroy link for that role inside admin" do
    @ability.can :destroy, Role
    render
    if Role.count > 0
        rendered.should have_selector("tr td") do |destroy_a|
          destroy_a.should have_selector "a",
            :href => admin_role_path(Role.first),
            :"data-method" => "delete",
            :"data-confirm" => "删除之后,该角色下的用户将无该角色下的权限。确定删除吗?",
            :rel => "nofollow",
            :content => "删除"
        end
    end
  end
  it "has a update link for that role inside admin" do
    @ability.can :update, Role
    render
     if Role.count > 0
        rendered.should have_selector("tr td") do |update_a|
          update_a.should have_selector "a",
            :href => "/admin/roles/"+Role.first.id+"/edit",
            :content => "修改"
        end
     end
  end
  it "renders a list of admin/roles" do
    role = Role.first
    @ability.can :destroy, Role
    @ability.can :update, Role
    render
    # Run the generator again with the --webrat flag if you want to use webrat matchers
    allow_message_expectations_on_nil
    assigns[:roles].stub!(:total_pages).and_return(1)
    assert_select "tr>td", :text => role.name.to_s, :count => 1
    assert_select "tr td", :text => role.description.to_s, :count => 1
    mycount = Role.count
    assert_select "a", :html => "修改",:count =>  mycount < 10?mycount:10
    assert_select "a", :html => "删除", :count => mycount < 10?mycount:10
  end
end
分享到:
评论

相关推荐

    kaminari-rspec:帮助编写 kaminari 用于分页的视图规范的宝石

    Kaminari Rspec 库 kaminari-rspec是一个 ruby​​ ...使用 RSpec 的 render_view 渲染视图如果您使用 render_views 渲染控制器规范中的视图,并且您正在使用类似(RSpec 语法)的内容来模拟从数据库返回的数据 allow

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

    在"workout-app-master"这个压缩包中,可能包含了整个项目的源代码,包括Rails的模型(models)、控制器(controllers)、视图(views)、路由(routes)、数据库迁移(migrations)、测试(spec)、配置文件...

    sinatra-template:具有DataMapper和RSpec的基本Sinatra应用程序模板。 只需分叉并构建

    包括Bundler,DataMapper和RSpec,所有这些都可以使用。 配置 依赖关系和所有配置都在environment.rb中完成。 您的数据库也在这里设置。 默认情况下,DataMapper将使用sqlite3。 测试使用sqlite3内存适配器(无需...

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

    6. `views/`: 存放 ERB 或其他模板引擎编写的视图文件,用于渲染 HTML 页面。 7. `public/`: 静态资源,如 CSS、JavaScript 文件和图片等。 **知识点详解:** 1. **Ruby**: Ruby 是一种面向对象的编程语言,它的...

    provenance:很棒的Sinatra入门模板-包括rspec,activerecord,activesupport和Foundation

    这将重命名所有名称空间,并在views/layout.erb中为应用views/layout.erb 捆绑安装rake db:create (ActiveRecord附带) 好去!开箱即用的配置Postgres和ActiveRecord 基础主动支持小马的电子邮件Rspec /水豚进行...

    sinatra-basic-views-lab-online-web-sp-000

    Sinatra基本意见实验室 目标 设置控制器动作以呈现单独的视图 ...指示 您已被雇用为当地的保龄球馆构建应用程序。...运行rspec测试以确保页面上具有适当的内容。 在Learn.co上查看 ,并开始免费学习编码。

    ruby on rails blog(博客)制作

    Rails自带了测试框架RSpec和Capybara,你可以编写单元测试和集成测试,确保每个功能都能正常工作。 最后,部署你的应用。可以选择Heroku、AWS、DigitalOcean等平台,使用Git进行版本控制,通过`rails db:migrate ...

    导轨博客脚手架v-000

    阅读Controller and Views规范以获取有关找出此命令的帮助。 尝试运行rspec。 您很可能会得到一个错误。 您还需要记住要迁移测试数据库,但是rspec会为您提供线索。浏览代码,阅读,然后尝试全部使用。 模型名称将...

    用rails做个简单的论坛(三):将之前的串连起来

    Rails提供Rspec和Capybara等工具来进行测试驱动开发。 ### 八、优化与扩展 最后,我们可以考虑对应用进行优化,比如添加搜索功能,改进用户界面,或者引入缓存以提高性能。随着论坛的发展,还可以添加更多功能,如...

    Agile Web Development with Rails 3nd 下载

    3. **视图(Views)**:呈现给用户的HTML内容,通常由`.erb`文件组成,其中混合了Ruby代码来动态生成内容。 4. **路由(Routes)**:`config/routes.rb`文件定义了应用程序的URL结构,连接URL到相应的控制器动作。 ...

    Ruby on Rails入门例子

    9. **测试**:Rails鼓励TDD(测试驱动开发),提供Rspec和MiniTest等测试框架。你可以在`test`目录下编写测试用例,确保代码的正确性。 10. **部署**:当你准备好发布应用时,可以将其部署到Heroku、AWS或其他云...

    Ruby on Rails源代码

    视图文件通常位于`app/views`目录下,可以是ERB或Haml等模板语言。通过查看源代码,你可以学习如何使用辅助方法、局部变量和布局来创建动态页面。 5. **帮助器**:`app/helpers`目录包含应用中的各种辅助方法,用于...

    todos:Thoughtbot - tdd 待办事项应用

    3. `app/`:包含应用的模型(models)、控制器(controllers)、视图(views)和助手(helpers)等。 4. `db/`:数据库相关的文件,如迁移(migrations)和配置。 5. `config/`:项目的配置文件,包括数据库连接、...

    Ruby on Rails实践

    RSpec和Capybara等库提供了强大的测试工具,帮助开发者编写可读性强、覆盖率高的测试用例。 最后,书中可能还会涉及部署和服务器配置,如使用Capistrano自动化部署,或者在Heroku等云平台上发布Rails应用。 总的来...

    rails-hello-world-lab-nyc-web-071519

    在views目录中创建一个文件,该文件将由静态控制器的hello_world动作调用,并将标题&lt;h1&gt;Hello World到该文件中。 该测试区分大小写,因此请确保完全按照所示输入。 RSpec / Capybara测试套件当前未通过。 运行测试...

    rails-hello-world-lab-online-web-ft-090919

    在views目录中创建一个文件,该文件将由静态控制器的hello_world动作调用,并将标题&lt;h1&gt;Hello World到该文件中。 该测试区分大小写,因此请确保完全按照所示输入。 RSpec / Capybara测试套件当前未通过。 运行测试...

    rails-hello-world-lab-den01-seng-ft-051120

    在views目录中创建一个文件,该文件将由静态控制器的hello_world动作调用,并将标题&lt;h1&gt;Hello World到该文件中。 该测试区分大小写,因此请确保完全按照所示输入。 RSpec / Capybara测试套件当前未通过。 运行测试...

    rails-hello-world-lab-sf-web-102819

    在views目录中创建一个文件,该文件将由静态控制器的hello_world动作调用,并将标题&lt;h1&gt;Hello World到该文件中。 该测试区分大小写,因此请确保完全按照所示输入。 RSpec / Capybara测试套件当前未通过。 运行测试...

    rails-hello-world-lab-chi01-seng-ft-080320

    在views目录中创建一个文件,该文件将由静态控制器的hello_world动作调用,并将标题&lt;h1&gt;Hello World到该文件中。 该测试区分大小写,因此请确保完全按照所示输入。 RSpec / Capybara测试套件当前未通过。 运行测试...

    rails-hello-world-lab-onl01-seng-ft-032320

    在views目录中创建一个文件,该文件将由静态控制器的hello_world动作调用,并将标题&lt;h1&gt;Hello World到该文件中。 该测试区分大小写,因此请确保完全按照所示输入。 RSpec / Capybara测试套件当前未通过。 运行测试...

Global site tag (gtag.js) - Google Analytics