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

rspec controller测试

阅读更多
1 对于controller render/redirect的测试,一般对应以下的测试方法

render :action => :index
response.should render_template('index')

render :partial => 'post'
response.should render_template('_post')

redirect_to login_path
response.should redirect_to(login_path)
但是对于render :nothing = true来说,并没有相应的方法来测试,也无法用render_template来解决,只能是判断返回的response的内容是不是为空了。

response.should have_text(' ')
注意是 ,不是,至于为什么有个空格?我也没有仔细研究

response.body.should =~ /Listing widgets/m
response.body.should eq("")

2 对于controller with invalid params的测试,一般对应以下的测试方法
Member.any_instance.stub(:delete).and_return(false)
3 控制器中方法的调用
subject.send(:log_in,@user)


----------------------------------------实例-----------------------------
1 控制器中的 before_filter 
class MyController < ApplicationController
  before_filter :logged_in?

  def index
  end
end



describe MyController do
  describe "GET 'index'" do
    context "when not logged in"
      # you want to be sure that before_filter is executed
      it "requires authentication" do
        controller.expects :logged_in?
        get 'index'
      end
      # you don't want to spec that it will redirect you to login_path
      # because that spec belongs to #logged_in? method specs
    end
    context "when authenticated" do
      before(:each) { controller.stubs :logged_in? }
      it "renders :index template" do
        get 'index'
        should render_template(:index)
      end
      it "spec other things your action does when user is logged in"
    end
  end
end

分享到:
评论

相关推荐

    rspec_controller_testing

    了解如何创建 RSpec 控制器测试 为控制器初始化 RSpec 利用 RSpec 方法 学习方法 render_template(:view_filename) be_success include([array, of, things]) eq() be_a(Class) be_persisted redirect_to(path or ...

    RSpec 3.1中文版

    在测试Rails应用的过程中,RSpec可以用来测试模型(model)、视图(view)和控制器(controller)。模型测试确保应用的数据存储和检索逻辑是正确的。视图测试验证渲染出的HTML是否符合预期,而控制器测试则保证应用能够...

    rspec_receitas:几个RSpec测试配方

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

    rails-controller-testing:将`assigns`和`assert_template`带回到您的Rails测试中

    这个gem将assigns给控制器测试的内容以及assert_template带回assigns控制器和集成测试的内容。 这些方法已中。 安装 将此行添加到您的应用程序的Gemfile中: gem 'rails-controller-testing' 然后执行: $ ...

    Ruby on Rails实践

    Rails内置了Test::Unit和RSpec等测试框架,开发者可以通过编写测试先于代码来确保程序的正确性。测试覆盖包括单元测试、集成测试和功能测试。 Rails还提供了丰富的插件和gem库,如Devise用于身份验证,CanCanCan...

    rails-testing-toolbox:帮助Rails开发人员测试的工具

    它允许你集成RSpec到Rails项目中,包括生成测试套件,以及提供Rails特定的匹配器和宏,如`controller`, `model`, `request`, 和 `feature` 测试。 3. **Capybara**: Capybara是一个用于Rails应用的集成测试库,它...

    Ruby On Rails 面试系列七,一个面试练习题

    `sort_display_test.rb`可能包含了使用MiniTest或RSpec等测试框架编写的测试用例,测试排序功能的正确性。而`sort_display.rb`可能是实现排序逻辑的模型或控制器代码。面试时,可能会讨论如何设计和编写单元测试,...

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

    通过这个 Apicurious 示例项目,开发者可以学习到如何有效地测试 Rails API 控制器,理解如何组织测试代码,以及如何使用 RSpec 和 FactoryBot 来提高测试效率。它是一个很好的起点,可以帮助新手或经验丰富的开发者...

    Ruby on Rails实践之路给PHP和Java开发者的书

    7. **测试**:介绍RSpec或其他测试工具,如何编写单元测试、集成测试和功能测试。 8. **辅助方法和局部变量**:在视图中的辅助方法和局部变量的使用,提升视图的可读性和复用性。 9. **Gem包管理**:Ruby的Gem系统...

    Ruby On Rails

    RoR内置了Test::Unit和RSpec等测试框架,让你可以轻松创建单元测试、集成测试和功能测试。 视图层通常使用ERB(Embedded Ruby)模板,也可以选择Haml或Slim等更简洁的格式。ActionView提供了一套强大的辅助方法,...

    Ruby+on+Rails实践

    RoR内置了Test::Unit和RSpec等测试框架,开发者可以方便地进行单元测试、集成测试和功能测试,确保代码的质量和稳定性。 RoR还引入了“生成器”(Generators)的概念,用于快速生成常见的文件结构,如控制器、模型...

    ruby on rails(开发文档)

    8. **测试驱动开发(TDD)**:Rails鼓励使用测试来驱动开发,内置了Test::Unit和RSpec等测试框架。 9. **Scaffolding**:Rails的快速开发工具,可以自动生成用于CRUD(创建、读取、更新、删除)操作的基本控制器、...

    Ruby_on_Rails实践.rar

    测试在Rails开发中占据重要地位,Rails自带了Test::Unit和RSpec等测试框架,鼓励TDD(测试驱动开发)和BDD(行为驱动开发)。通过编写测试,开发者可以确保代码的质量和应用的功能。 最后,Rails社区非常活跃,有...

    rubyonrails

    7. **测试驱动开发(TDD)和集成测试**:Rails鼓励使用测试驱动开发,内置了RSpec和MiniTest等测试框架,可以编写单元测试、功能测试和集成测试,确保代码质量。 8. **Scaffold**:Rails的scaffold生成器可以帮助...

    jake:GraphQL + Rails API的天气

    Jake使用RSpec进行测试,这是Ruby社区广泛使用的测试框架。测试是确保代码质量、可靠性和功能完整性的重要环节。通过编写测试,开发者可以验证GraphQL查询是否按预期工作,以及Rails API是否正确处理请求并返回正确...

    rubyonrails的api文档

    10. **测试框架**:Rails内置了Test::Unit和RSpec作为测试工具,支持单元测试、集成测试和功能测试,确保代码的质量和稳定性。 API文档中的CHM文件是一种Windows的帮助文件,通常包含索引、搜索和书签功能,方便...

    RubyCourse中文版

    6. **自动化测试**:Rails内置了Test::Unit和RSpec等测试工具,方便进行单元测试和集成测试。 《RubyCourse_1.0-1.pdf》这本书可能包含了以下内容: 1. **基础篇**:介绍Ruby语言的基本语法,包括变量、常量、数据...

    rail 2.1 chm

    6. **测试框架**:Rails 2.1包含了Test::Unit和RSpec两种测试框架,提供了完整的测试覆盖,包括单元测试、集成测试和性能测试。改进后的测试助手和模拟功能使得测试编写更加简洁。 7. **部署和配置**:Rails 2.1...

    Ruby on Rails敏捷开发最佳实践源代码

    5. **测试驱动开发(TDD)**:Rails鼓励使用测试驱动开发,内置了Test::Unit和RSpec等测试框架,允许开发者编写单元测试、集成测试和功能测试,确保代码质量。 6. **Gem生态系统**:Ruby on Rails依赖于Gem包管理...

    Ruby on Rails入门经典代码

    - RSpec:一种流行的Rails测试框架,用于行为驱动开发。 - MiniTest:内置的测试库,包括unit测试和functional测试。 6. **Rails开发工具**: - Bundler:管理Gem依赖,确保项目依赖的一致性。 - Rails Console...

Global site tag (gtag.js) - Google Analytics