本文为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-rspec是一个 ruby ...使用 RSpec 的 render_view 渲染视图如果您使用 render_views 渲染控制器规范中的视图,并且您正在使用类似(RSpec 语法)的内容来模拟从数据库返回的数据 allow
在"workout-app-master"这个压缩包中,可能包含了整个项目的源代码,包括Rails的模型(models)、控制器(controllers)、视图(views)、路由(routes)、数据库迁移(migrations)、测试(spec)、配置文件...
包括Bundler,DataMapper和RSpec,所有这些都可以使用。 配置 依赖关系和所有配置都在environment.rb中完成。 您的数据库也在这里设置。 默认情况下,DataMapper将使用sqlite3。 测试使用sqlite3内存适配器(无需...
6. `views/`: 存放 ERB 或其他模板引擎编写的视图文件,用于渲染 HTML 页面。 7. `public/`: 静态资源,如 CSS、JavaScript 文件和图片等。 **知识点详解:** 1. **Ruby**: Ruby 是一种面向对象的编程语言,它的...
这将重命名所有名称空间,并在views/layout.erb中为应用views/layout.erb 捆绑安装rake db:create (ActiveRecord附带) 好去!开箱即用的配置Postgres和ActiveRecord 基础主动支持小马的电子邮件Rspec /水豚进行...
Sinatra基本意见实验室 目标 设置控制器动作以呈现单独的视图 ...指示 您已被雇用为当地的保龄球馆构建应用程序。...运行rspec测试以确保页面上具有适当的内容。 在Learn.co上查看 ,并开始免费学习编码。
Rails自带了测试框架RSpec和Capybara,你可以编写单元测试和集成测试,确保每个功能都能正常工作。 最后,部署你的应用。可以选择Heroku、AWS、DigitalOcean等平台,使用Git进行版本控制,通过`rails db:migrate ...
阅读Controller and Views规范以获取有关找出此命令的帮助。 尝试运行rspec。 您很可能会得到一个错误。 您还需要记住要迁移测试数据库,但是rspec会为您提供线索。浏览代码,阅读,然后尝试全部使用。 模型名称将...
Rails提供Rspec和Capybara等工具来进行测试驱动开发。 ### 八、优化与扩展 最后,我们可以考虑对应用进行优化,比如添加搜索功能,改进用户界面,或者引入缓存以提高性能。随着论坛的发展,还可以添加更多功能,如...
3. **视图(Views)**:呈现给用户的HTML内容,通常由`.erb`文件组成,其中混合了Ruby代码来动态生成内容。 4. **路由(Routes)**:`config/routes.rb`文件定义了应用程序的URL结构,连接URL到相应的控制器动作。 ...
9. **测试**:Rails鼓励TDD(测试驱动开发),提供Rspec和MiniTest等测试框架。你可以在`test`目录下编写测试用例,确保代码的正确性。 10. **部署**:当你准备好发布应用时,可以将其部署到Heroku、AWS或其他云...
视图文件通常位于`app/views`目录下,可以是ERB或Haml等模板语言。通过查看源代码,你可以学习如何使用辅助方法、局部变量和布局来创建动态页面。 5. **帮助器**:`app/helpers`目录包含应用中的各种辅助方法,用于...
3. `app/`:包含应用的模型(models)、控制器(controllers)、视图(views)和助手(helpers)等。 4. `db/`:数据库相关的文件,如迁移(migrations)和配置。 5. `config/`:项目的配置文件,包括数据库连接、...
RSpec和Capybara等库提供了强大的测试工具,帮助开发者编写可读性强、覆盖率高的测试用例。 最后,书中可能还会涉及部署和服务器配置,如使用Capistrano自动化部署,或者在Heroku等云平台上发布Rails应用。 总的来...
在views目录中创建一个文件,该文件将由静态控制器的hello_world动作调用,并将标题<h1>Hello World到该文件中。 该测试区分大小写,因此请确保完全按照所示输入。 RSpec / Capybara测试套件当前未通过。 运行测试...
在views目录中创建一个文件,该文件将由静态控制器的hello_world动作调用,并将标题<h1>Hello World到该文件中。 该测试区分大小写,因此请确保完全按照所示输入。 RSpec / Capybara测试套件当前未通过。 运行测试...
在views目录中创建一个文件,该文件将由静态控制器的hello_world动作调用,并将标题<h1>Hello World到该文件中。 该测试区分大小写,因此请确保完全按照所示输入。 RSpec / Capybara测试套件当前未通过。 运行测试...
在views目录中创建一个文件,该文件将由静态控制器的hello_world动作调用,并将标题<h1>Hello World到该文件中。 该测试区分大小写,因此请确保完全按照所示输入。 RSpec / Capybara测试套件当前未通过。 运行测试...
在views目录中创建一个文件,该文件将由静态控制器的hello_world动作调用,并将标题<h1>Hello World到该文件中。 该测试区分大小写,因此请确保完全按照所示输入。 RSpec / Capybara测试套件当前未通过。 运行测试...
在views目录中创建一个文件,该文件将由静态控制器的hello_world动作调用,并将标题<h1>Hello World到该文件中。 该测试区分大小写,因此请确保完全按照所示输入。 RSpec / Capybara测试套件当前未通过。 运行测试...